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

Java 如何在Android中正确实现沉浸式全屏模式?,java,android,android-fragments,android-6.0-marshmallow,android-immersive,Java,Android,Android Fragments,Android 6.0 Marshmallow,Android Immersive,我有一个应用程序,其中我有一个包含片段层的单个活动。我想在应用程序的某些状态下在沉浸模式和正常模式之间切换。一切都很好,直到我按照 碎片的大小开始变得奇怪。在堆栈溢出中找不到任何解决方案有任何帮助 我已将该项目上载到。你能提供一些关于我做错了什么的见解吗 public void showSystemUI() { View decorView = getWindow().getDecorView(); if (decorView != null) {

我有一个应用程序,其中我有一个包含片段层的单个活动。我想在应用程序的某些状态下在沉浸模式和正常模式之间切换。一切都很好,直到我按照

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

我已将该项目上载到。你能提供一些关于我做错了什么的见解吗

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
            );
        }
}
  • 项目何时开始

  • 将另一个片段添加到同一FrameLayout时

  • 当第三个片段被添加到另一个FrameLayout时,沉浸模式被触发
  • 当我们触发“正常模式”时,第三个碎片的视图最小化,问题就开始了。先前碎片的顶部和底部都被切掉了。
  • 此外,进入全屏,旋转,然后点击PIP。它变得更难看了

    我已将该项目上载到。你能提供一些关于我做错了什么的见解吗

    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
                );
            }
    }
    
    使其更好,但状态栏和嵌套视图大小仍然存在问题