Android 导航栏覆盖屏幕底部

Android navigation bar covers bottom of screen

对于使用 Jeremy Feinstein 的 SlidingMenu 和目标 API 级别 29 的 Android 应用程序,最近在 2 台设备(Samsung Galaxy A01 和 Samsung Galaxy Note20 Ultra,运行 Android 11) 屏幕底部的内容被导航栏覆盖。

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

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

或使用 SlidingMenu.SLIDING_CONTENT 而不是 SlidingMenu.SLIDING_WINDOW

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

据报道,有问题的 2 台设备在过去的某个不确定时间点(可能是在 1 月左右)正确显示了所有屏幕,在该时间点附近没有对应用程序进行更新。它们属于同一个用户,该用户报告说他在使用任何其他应用程序时都没有这个问题,对于这个应用程序,只有在带有自定义 ActionBar 的 Fragments 中显示的屏幕上(删除自定义 ActionBar 没有帮助)。

其他已尝试但没有帮助的方法(排名不分先后)包括:

所以问题是,如何解决有问题和没有问题的设备?让我知道是否有任何代码我应该 post.

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