1.原生组件使用,封装到方法中,调用方法使用
// popup
private void showPopup(View view){
// 这里的view代表popupMenu需要依附的view
PopupMenu popupMenu = new PopupMenu(this,view);
// 获取布局文件
popupMenu.getMenuInflater().inflate(R.menu.popup_menu_note_book, popupMenu.getMenu());
popupMenu.show();
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
// 控件每一个item的点击事件
showLabel.setText(item.getTitle()); //把当前标签名赋给按钮显示
return true;
}
});
popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener() {
@Override
public void onDismiss(PopupMenu menu) {
// 控件消失时的事件
}
});
}
2.更为强大的开源项目github搜,li-xiaojun/XPopup,下面是其中之一的弹窗
implementation 'com.lxj:xpopup:1.7.6'
new XPopup.Builder(context)
.atView(v)
.asAttachList(new String[]{"11111111111", "达大酒店卡了激烈的骄傲了", "3"},
null,
new OnSelectListener() {
@Override
public void onSelect(int position, String text) {
Toast.makeText(context, "Click"+text, Toast.LENGTH_SHORT).show();
}
}).show();
atView(依附的view)
asAttachList(菜单项名,菜单对应图标,菜单项点击选择事件)
show()显示