使用导航组件时将片段设置为全屏 - Android

Set Fragment to FullScreen while using Navigation Component - Android

我最近将我的应用程序转换为单一 Activity 架构并尝试将一个特定片段设置为全屏。 activity 的标准全屏代码不适用于片段

final int flags =
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;

我找到了这个 。但是将它设置为 FLAG_LAYOUT_NO_LIMITS 会导致片段中的 PagerSnapHelper 在 FLAG_LAYOUT_NO_LIMITS 和撤销它之间切换时跳转。

所以我的问题是,有没有其他方法可以在不使用 FLAG_LAYOUT_NO_LIMITS.

的情况下将片段设置为全屏

您永远不需要使用 FLAG_LAYOUT_NO_LIMITS,也不应该在 activity 层全局应用 fitsSystemWindows="true" - 这会阻止您的片段全屏显示。相反,仅在片段/单个组件上添加 fitsSystemWindows,否则会与 status/system 条重叠。这将确保您的全屏片段能够占据整个尺寸,而不是从边缘插入。