如何在安卓系统中正确实现沉浸式全屏模式?

4
我有一个应用程序,其中有一个包含多层片段的单个活动。我想在应用程序的某些状态下在沉浸模式和正常模式之间切换。一切都很好,直到我按照Android文档 的说明调用了隐藏系统UI的方法。

Documentation Code

碎片的大小开始变得奇怪。在堆栈溢出中找不到任何解决方案。

我已将项目上传到GitHub。您能否提供一些关于我做错了什么的见解?

  1. 项目启动时 第一步

  2. 当另一个碎片添加到相同的FrameLayout中时

Step Two

当沉浸模式被触发时,将第三个片段添加到另一个FrameLayout中。

Step 3

  1. 当第三个片段的视图最小化时,我们触发了“正常模式”。前一个片段的顶部和底部被剪切掉了。 步骤 4

此外,全屏、旋转然后点击 PIP,它会变得更加丑陋。

我已经将项目上传到 GitHub。您能否提供一些关于我做错了什么的见解?

1个回答

1
public void showSystemUI() {
        View decorView = getWindow().getDecorView();

        if (decorView != null) {
            decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_VISIBLE  | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            );
        }
}

虽然有所改进,但状态栏和嵌套视图大小仍存在问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接