弹出窗口中的键盘和焦点问题



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

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

    @Override
    public void onBackPressed() {
       if (popupWindow.isShowing()) {
          showConfirmationDialogForExit();
       } else {
           super.onBackPressed();
       }
    }

我的弹出窗口中的键盘无法打开(弹出窗口具有编辑文本(。此外,我还保留了一个对话框来确认在Back Press上退出屏幕,该对话框有效。

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

popupWindow.setFocusable(true);

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

popupWindow.isShowing()

我的问题是,我想在弹出窗口显示时实现后压检查,并且在单击该弹出窗口上的编辑文本时也需要使用键盘。

所经历的解决方案建议我保持

popupWindow.setFocusable(true);

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

请指导我。

试试

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

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

如果由于某种原因这对您不起作用,您可以随时在打开 popWindow 时设置本地标志。

boolean popupshowing = true;

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

最新更新