PopupWindow

时间:2018-03-08 16:49:51

标签: android focus popupwindow android-popupwindow

我正在显示一个弹出窗口,如果我按如下方式初始化它:

popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow.setFocusable(false);

    @Override
    public void onBackPressed() {

       if (popupWindow.isShowing()) {
          showConfirmationDialogForExit();
       } else {
           super.onBackPressed();
       }

    }

我的PopupWindow中的键盘无法打开(popupWindow有EditText)。 此外,我还保留了一个对话框,以确认Back Press上的屏幕退出是否有效。

现在与此相反,如果我保持

popupWindow.setFocusable(true);

键盘打开并工作,但onBackPressed()不检查

popupWindow.isShowing()

这里我的问题是,我想在弹出窗口显示时实现背压检查,并且在点击popupWindow上的EditText时也需要工作键盘。

我所经历的解决方案暗示我要保持

popupWindow.setFocusable(true);

但我无法实现我正在寻找的目标。

请指导我。

1 个答案:

答案 0 :(得分:1)

popWindow.setFocusable(true);
popWindow.update();

这将更新弹出窗口的状态(如果当前正在显示),从当前设置的状态开始。

如果由于某种原因它不适合你,你可以随时在打开popWindow时设置一个本地标志....

boolean popupshowing = true;

然后用它来检查它是否打开。 (我同意它不是最优雅的解决方案)