Android 导航栏覆盖屏幕底部

时间:2021-05-19 01:40:55

标签: android navigationbar overlap slidingmenu

对于使用 Jeremy Feinstein 的 SlidingMenu 并以 API 级别 29 为目标的 Android 应用程序,最近在 2 台设备(运行 Android 11 的三星 Galaxy A01 和三星 Galaxy Note20 Ultra)上发现了一个问题,即屏幕底部的内容被导航栏覆盖。

唯一对 2 个受影响的设备产生影响的是在滑动菜单构造函数中添加它:

if (Build.VERSION.SDK_INT >= 21) {
    setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
}

或使用 SlidingMenu.SLIDING_CONTENT 代替 SlidingMenu.SLIDING_WINDOW

这些更改中的一个或另一个解决了 2 台设备上的问题,但在从未发生过问题的设备上(运行 Android 9、10、11 的 Pixel 2、Moto X4、Nexus 6 等)然后是屏幕内容底部和导航栏之间底部的白色间隙。

据报道,有问题的 2 台设备在过去的某个不确定时间点(可能在 1 月左右)正确显示了所有屏幕,在此前后应用程序没有更新。它们属于同一个用户,他报告说他在使用任何其他应用程序时都没有出现此问题,并且对于此应用程序,仅在具有自定义 ActionBar 的 Fragments 中显示的屏幕上(删除自定义 ActionBar 无济于事)。

尝试过的其他没有帮助的事情,没有特定的顺序,包括:

那么问题是,如何为有问题的设备和没有问题的设备解决问题​​?如果我应该发布任何代码,请告诉我。

1 个答案:

答案 0 :(得分:0)

问题是导航栏高度计算,必须针对带有显示切口的设备进行调整,感谢@JohnLord 发现了这种差异。