我已经为对话框设置了标志“FLAG_NOT_TOUCH_MODAL”。这样当对话框启动时,我可以与布局中的其他元素进行交互。
但是当在外面被触摸时,我想接收焦点变化。我找不到对话框的 setFocusable(true) api 或设置对话框的焦点监听器。
谁能告诉我,当焦点进入/离开对话时如何接收?
requestWindowFeature(Window.FEATURE_NO_TITLE);
Window window = this.getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
这些是我在自定义对话框的 cstr
中为窗口设置的属性。
最佳答案
您可以像下面我使用的那样为对话框使用相同的标志。
Dialog mDialog = new Dialog(CustomKeyboardNotLikeAndroidActivity.this, R.style.PauseDialog);
mDialog.setContentView(R.layout.keyboard);
mDialog.getWindow().getAttributes().windowAnimations = R.style.PauseDialogAnimation;
mDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
mDialog.setCancelable(true);
mDialog.show();
它会让你改变焦点。试试这个我希望你会有丰硕的成果。谢谢。
关于android - 如何处理对话框的焦点变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5634138/