Android似乎在使用虚拟/屏幕按钮的设备上会剪切掉底部的100px。是否有可能检测当前手机/平板电脑是否使用屏幕按钮,以便我能够考虑到缺失的空间?如果可以,是否还可以获取按钮的高度?
hasPermanentMenuKey()
来检查设备是否具有永久(硬件)菜单按钮。可以按以下方式使用它:boolean hasMenuKey = ViewConfiguration.get(context).hasPermanentMenuKey();
boolean hasDpad = getResources().getConfiguration().naviation == Configuration.NAVIGATION_DPAD;
match_parent
作为高度,则它们永远不会妨碍您的布局。其次,无法获取虚拟按钮栏的确切高度;它可能会在构建之间发生变化。Android API中也没有本地方法来获取“可用”屏幕空间(底部未被栏覆盖的区域)。ViewGroup
或LinearLayout
或其他东西)。onLayout()
](http://developer.android.com/reference/android/widget/LinearLayout.html#onLayout(boolean, int, int, int, int))或onMeasure()
,并从中获取您的布局的确切高度。(您可能想使用this作为参考。)据我所记,底部的虚拟按钮仅适用于Android 3.0(蜂巢)及以上版本。至于高度问题,我从未深入研究过。