问题描述
我最近将我的应用程序转换为“单一活动”架构,并尝试将一个特定的片段设置为全屏显示。用于活动的标准全屏代码不适用于片段
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;
我找到了这个Android set full screen from fragment。但是将其设置为FLAG_LAYOUT_NO_LIMITS会使片段中的PagerSnapHelper在FLAG_LAYOUT_NO_LIMITS和吊销之间切换时跳来跳去。
所以我的问题是,是否有其他方法可以将片段设置为全屏显示而不使用FLAG_LAYOUT_NO_LIMITS。
解决方法
您永远不需要使用FLAG_LAYOUT_NO_LIMITS
,也不必在活动层全局应用fitsSystemWindows="true"
-这将阻止您的片段全屏显示。相反,仅在片段/单个组件上添加fitsSystemWindows
,否则它们会与状态/系统栏重叠。这样可以确保您的全屏片段能够占据整个尺寸,而不会从边缘插入。