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

Sar*_*lan 3 navigation android android-fragments android-fullscreen

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

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;
Run Code Online (Sandbox Code Playgroud)

从fragment中发现了这个Android设置全屏。但是将其设置为 FLAG_LAYOUT_NO_LIMITS 会导致片段中的 PagerSnapHelper 在 FLAG_LAYOUT_NO_LIMITS 和撤销它之间切换时跳转。

所以我的问题是,是否有其他方法可以在不使用 FLAG_LAYOUT_NO_LIMITS 的情况下将片段设置为全屏。

ian*_*ake 6

您不应该需要使用FLAG_LAYOUT_NO_LIMITS,也不应该fitsSystemWindows="true"在活动层全局应用 - 这会阻止您的片段全屏显示。相反,仅添加fitsSystemWindows片段/单个组件,否则会与状态/系统栏重叠。这将确保您的全屏片段能够占据整个尺寸并且不会从边缘插入。