我有一台Android三星Galaxy S II设备,我正在测试我的应用程序。在我的应用程序中,我使用以下代码检查导航栏是否占用了屏幕上的任何空间:
Resources resources = context.getResources();
int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
if (resourceId > 0) {
return resources.getDimensionPixelSize(resourceId);
}
return 0;
我这样做,所以我可以为其他设备设置适当的边距。但对于三星Galaxy S II,导航栏实际上并不在屏幕上(屏幕下方有一排电容式按钮)。但是,当我计算导航高度时,我得到一个非零值(72)。
有人可以向我解释为什么它会返回这个值吗?
答案 0 :(得分:1)
这是因为无论设备如何,维度资源navigation_bar_height
都存在。
您必须检查设备API级别,以及是否使用Build.VERSION.SDK_INT
和hasPermanentMenuKey