当弹出窗口被解除时,如何处理列表视图上的触摸事件

时间:2016-07-17 22:48:58

标签: android

我有一个listView。每个列表项都是可点击的。每个列表项都是一个布局。

按下按钮,我在listView上面显示一个popupWindow。我已经设置了

    popupWindow.setOutsideTouchable(true);
    popupWindow.setBackgroundDrawable(new BitmapDrawable(getResources(), ""));
    PopupWindow.OnDismissListener dismissListener = new PopupWindow.OnDismissListener(){
        @Override
        public void onDismiss() {
               popWindowVisible = false;
               popwindow_dim_bg.setVisibility(View.GONE);

        }
    };
    popupWindow.setOnDismissListener(dismissListener);

现在我的问题是当我在popupWindow外面触摸到listView时,android执行listView项目的点击监听器

而我想要的行为就是在没有弹出的情况下解除弹出,否则让点击直播。

我在listView上尝试了setOnTouchListener(return true),但这没有帮助。

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

据我所知,当你在对话框外面点击时,如果有任何视图,它将执行视图的onclick监听器。

要覆盖它,请使用布尔标志

您必须执行以下操作:

  1. boolean isDialogOpen = false;

  2. 在按钮点击事件内,设置isDialogOpen = true

  3. 在onDismiss内设置isDialogOpen = false

  4. 列表视图项目中的
  5. 单击,添加if块

    如果(!isDialogOpen) {

    //你的东西在这里 ....

    }