所以,我在这里找到了很多关于状态栏和导航栏问题的答案。我目前正在开发的应用程序必须放在状态栏后面,但不能放在导航栏后面,因为它使用 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 时:
3) 启用手势模式时的不良行为:
4) 启用手势模式时的预期行为: