【发布时间】:2013-04-12 03:03:26
【问题描述】:
我正在尝试检查加载时是否存在 android 导航栏,以便我可以相应地调整布局,有人有什么建议吗?
这是我要检测的导航栏:
附:到目前为止,我发现的只是尝试移除栏的“糟糕”方法,我不想这样做。
【问题讨论】:
-
你为什么关心酒吧是否在那里?毕竟,屏幕尺寸本身可能与任何其他给定设备完全不同,无论条形如何。然后是 Kindle Fire 系列之类的设备,它们的栏不同。您不应该根据 UI 的可用空间而不是导航栏是否存在来做出决定吗?
-
当在运行 4.1 的 S3 上进行测试时,导航栏不存在,而布局工作完美无缺,在运行 4.1 的 Nexus 4 上进行测试时,底部附近的一些布局是稍微切断。两个屏幕 1280x720 xhdpi
-
当你的应用在另一个分辨率和密度的屏幕上运行时,你会得到不同的结果,与是否有导航栏无关。
-
作为观察结果,没有系统导航栏的三星设备被列为“长”,而带有导航栏的 HTC 和摩托罗拉设备被列为“不长”——这将允许使用常规资源加载来确定不同的布局。但是,这并不严格匹配 long 与 notlong 的定义,这应该只是屏幕方面。原来,这是“可用的 dp 方面”(请参阅stackoverflow.com/a/17935955/91165 并仔细查看 Android 代码)。
-
@CommonsWare 我的用例涉及一个可以显示/隐藏 SystemNavBar 的沉浸式视频播放器。一个progressBar + SystemNavBar 显示onTap,并在另一个点击时消失。为了防止 SystemNav bar 与 progressBar 重叠,我需要为 SystemNavBar 的大小设置正确的边距,包括 SystemNavBar 不存在的情况。我举了一个例子,说明何时确定 SystemNavBar 是否存在是有用的。
标签: java android layout android-4.0-ice-cream-sandwich android-4.2-jelly-bean