ImageView点击第二次点击不点火

时间:2014-05-13 06:31:27

标签: android imageview popupmenu

我想在点击一个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。

1 个答案:

答案 0 :(得分:0)

您需要调用mPopupMenu的setModal(false)。它将调用内部PopupWindow的setFocusable,并允许您在后台窗口中获取事件。