我想在点击一个imageview时关闭一个弹出菜单。但是它无效。
menuicon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (f == 1) {
f = 0;
mPopupMenu.setContentWidth(ContactsActivity.this.getWindowManager()
.getDefaultDisplay()
.getWidth() / 2);
mAdapter.notifyDataSetChanged();
mPopupMenu.setAnchorView(menuicon);
mPopupMenu.show();
} else {
mPopupMenu.dismiss();
f = 1;
}
}
});
当我第一次点击menuicon弹出菜单正确显示时。但是当我第二次点击时菜单没有关闭。我调试了我的代码,发现imageview实际上并没有第二次发射roe.menuicon是一个imageview.And这里是xml代码:
<ImageView
android:id="@+id/menuicon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:src="@drawable/menuicon"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
/>
f的初始值为1。
答案 0 :(得分:0)
您需要调用mPopupMenu的setModal(false)。它将调用内部PopupWindow的setFocusable,并允许您在后台窗口中获取事件。