android - 如何处理对话框的焦点变化

标签 android android-layout

我已经为对话框设置了标志“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/

相关文章:

android - Android 的选项卡式可分页 ActionBar 主导航上的哪个子导航模式?

java - Android TextView 编程

java - 相对布局内的框架布局不显示

android - 自定义评级栏仅显示一颗星

Android Google Play 服务为 blogger api 返回无效 token

android - android中有没有相当于苹果的carekit和researchkit的框架?

java - RxJava2 将map结果转换为Flowable?

android - 在包 'onclick' 中找不到属性 'android' 的资源标识符

android - 日期选择器“确定/取消”按钮文本已更改为牛轧糖中的其他语言(Moto G4 plus)

java - Android studio 中的入职屏幕