只有在单击“关闭”按钮时,才能在外部单击时忽略PopupWindow

时间:2014-07-24 13:43:50

标签: android android-layout popup popupwindow dismiss

我有一个带有关闭按钮的PopupWindow,我只想在单击此关闭按钮时关闭PopupWindow。此外,我不希望基础活动视图受到任何触摸的影响。

以前曾经问过:Android Popup Window dismisses when clicked outside。但由于它是三年前(2011年)的问答,我想知道现在是否有更好的解决方案,或者我确实应该使用接受的答案方法。

2 个答案:

答案 0 :(得分:0)

试试这个link或以下代码之一

pw.setOutsideTouchable(false);

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
Rect dialogBounds = new Rect();
getWindow().getDecorView().getHitRect(dialogBounds);

if (!dialogBounds.contains((int) ev.getX(), (int) ev.getY())) {
    // Tapped outside so we finish the activity
    this.finish();
}
return super.dispatchTouchEvent(ev);
}

希望这会有所帮助......

答案 1 :(得分:0)

您需要同时执行这两项操作:

    popupWindow.setOutsideTouchable(false);
    popupWindow.setFocusable(false);

检查this