【问题标题】:Android navigation bar covers bottom of screenAndroid导航栏覆盖屏幕底部
【发布时间】:2021-05-19 01:40:55
【问题描述】:

对于使用 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 的片段中显示的屏幕上(删除自定义 ActionBar 没有帮助)。

其他没有帮助的尝试包括:

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

【问题讨论】:

  • 他的代码显然没有正确获取屏幕尺寸和尺寸。如果设备有打孔摄像头或缺口,我之前已经看到这是一个问题,因为通知区域可以是随机大小。我建议你看看这是否是问题并检查这个链接:developer.android.com/guide/topics/display-cutout

标签: android navigationbar overlap slidingmenu


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多