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

问题描述

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

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,否则它们会与状态/系统栏重叠。这样可以确保您的全屏片段能够占据整个尺寸,而不会从边缘插入。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...