4

所以,我在这里找到了很多关于状态栏和导航栏问题的答案。我目前正在开发的应用程序必须放在状态栏后面,但不能放在导航栏后面,因为它使用 BottomBar 作为主导航。

因此,我尝试了设置<item name="android:windowTranslucentNavigation">true</item>,并将其设置为false仅更改控件的色调,内容仍然在其后面绘制。

删除window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)会禁用状态栏和导航栏后面的内容。所以不去...

切换android:fitsSystemWindows="true"并不能解决问题...

我试图检测导航栏是否可见,但到目前为止我没有成功,因为即使不可见,它resources.getIdentifier("navigation_bar_height", "dimen", "android")仍然会返回一个值,就好像导航栏正在显示一样。并且该属性config_showNavigationBar仅在设备具有物理键时才有效(例如三星)

我正在测试 Moto X4 (Pie) 和 Xiaomi Note 6 Pro (Oreo),通过手势导航来隐藏导航栏。

打印(小米顶部,X4 底部):


1)开箱即用的行为:

导航栏后面的选项卡


2) 获取 NavBar 高度并将自定义边距应用于 BottomBar 时:

为 BottomBar 添加了自定义边距,因此它显示在导航栏上方


3) 启用手势模式时的不良行为:

黑条保持不变,因为我无法收听任何暗示导航栏是否真的存在的属性


4) 启用手势模式时的预期行为:

黑条应该被隐藏,因为某些属性表明导航控件不存在

4

0 回答 0