java – 如何在Android中正确实现沉浸式全屏模式?

我有一个应用程序,我有一个包含多个片段层的活动.我想在应用程序的某些状态期间在沉浸模式和普通模式之间切换.一切都很好,直到我按照
Android Documentation调用Hide System UI

《java – 如何在Android中正确实现沉浸式全屏模式?》

碎片的大小开始变得怪异.堆栈溢出中找不到任何解决方案是有帮助的.

我已将项目上传到GitHub.你能否就我做错了什么提供一些见解?

>项目启动时
《java – 如何在Android中正确实现沉浸式全屏模式?》
>当另一个片段添加到同一个FrameLayout时

《java – 如何在Android中正确实现沉浸式全屏模式?》

>当触发浸入式模式时,将第三个片段添加到另一个FrameLayout

《java – 如何在Android中正确实现沉浸式全屏模式?》

>问题开始当第三个片段的视图最小化时,我们触发“正常模式”.切掉了之前片段的顶部和底部.
《java – 如何在Android中正确实现沉浸式全屏模式?》

此外,转到全屏,旋转,然后点击PIP点击.它变得更加丑陋.

我已将项目上传到GitHub.你能否就我做错了什么提供一些见解?

最佳答案

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
            );
        }
}

使它更好,但状态栏和&嵌套视图大小.

点赞