如何防止滚动事件被 PopupWindow 拦截
How to prevent the scroll event from being intercepted by a PopupWindow
当我单击 PopupWindow
之外的 space 时,window 被关闭。但是,如果我想在 window 之外滚动 ListView
,滚动事件首先被识别为点击事件,并被 window 拦截,因此 window被解雇,而滚动没有被执行。
如何在 ListView
被关闭的同时滚动 window ,这样我就不需要再次滚动它了。
试试这组属性:
window.setTouchable(true);
window.setOutsideTouchable(true);
window.setFocusable(false);
在这种情况下,当您在其框架外单击时,您的弹出窗口不会被关闭,但您可以添加一个侦听器来捕获外部触摸并关闭弹出窗口:
window.setTouchInterceptor(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
window.dismiss();
return true;
}
return false;
}
});
当我单击 PopupWindow
之外的 space 时,window 被关闭。但是,如果我想在 window 之外滚动 ListView
,滚动事件首先被识别为点击事件,并被 window 拦截,因此 window被解雇,而滚动没有被执行。
如何在 ListView
被关闭的同时滚动 window ,这样我就不需要再次滚动它了。
试试这组属性:
window.setTouchable(true);
window.setOutsideTouchable(true);
window.setFocusable(false);
在这种情况下,当您在其框架外单击时,您的弹出窗口不会被关闭,但您可以添加一个侦听器来捕获外部触摸并关闭弹出窗口:
window.setTouchInterceptor(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
window.dismiss();
return true;
}
return false;
}
});