我有一个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)
,但这没有帮助。
你能帮我解决这个问题吗?
答案 0 :(得分:1)
据我所知,当你在对话框外面点击时,如果有任何视图,它将执行视图的onclick监听器。
要覆盖它,请使用布尔标志
您必须执行以下操作:
boolean isDialogOpen = false;
在按钮点击事件内,设置isDialogOpen = true
在onDismiss内设置isDialogOpen = false
单击,添加if块
如果(!isDialogOpen) {
//你的东西在这里 ....
}