我正在显示一个弹出窗口,如果我按如下方式初始化它:
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);
但我无法实现我正在寻找的目标。
请指导我。
答案 0 :(得分:1)
试
popWindow.setFocusable(true);
popWindow.update();
这将更新弹出窗口的状态(如果当前正在显示),从当前设置的状态开始。
如果由于某种原因它不适合你,你可以随时在打开popWindow时设置一个本地标志....
boolean popupshowing = true;
然后用它来检查它是否打开。 (我同意它不是最优雅的解决方案)