首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android应用程序在全屏活动上显示对话框时退出全屏

Android应用程序在全屏活动上显示对话框时退出全屏
EN

Stack Overflow用户
提问于 2021-07-27 04:19:50
回答 2查看 49关注 0票数 0

根据请求,我会尝试让Android应用程序全屏显示。我关注过Enable fullscreen mode,但在显示对话框时,导航菜单(主页按钮、后退按钮等)在显示对话框时再次显示。有没有办法禁用它?

我基于Fullscreen活动模板制作了一个示例应用程序,并观察到了相同的行为:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-27 16:05:25

默认情况下,对话框窗口是可聚焦的,并且可聚焦窗口会导致退出全屏模式。

为了解决这个问题,你可以尝试按照here中描述的那样给你的对话框设置FLAG_NOT_FOCUSABLE标志,但是请注意,诸如ANR这样的系统对话框仍然会导致退出。

票数 2
EN

Stack Overflow用户

发布于 2021-07-27 21:37:18

根据link @ceribadev shared中的答案,共享我的解决方案:

代码语言:javascript
运行
复制
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
    Dialog dialog = super.onCreateDialog(savedInstanceState);

    // Here's the magic..
    try {
        // Set the dialog to not focusable (makes navigation ignore us adding the window)
        dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);

        // Show the dialog!
        dialog.setOnShowListener(dialogInterface -> {
            // Set the dialog to immersive
            dialog.getWindow().getDecorView().setSystemUiVisibility(dialog.getOwnerActivity().getWindow().getDecorView().getSystemUiVisibility());

            // Clear the not focusable flag from the window
            dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
        });
    } catch (Exception e) {
        e.printStackTrace();
    }

    return dialog;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68535922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档