Android:检查动作按钮(主页,背面等)是否在屏幕内?

时间:2015-04-11 06:55:43

标签: android android-layout android-activity

我想更详细地解释,

某些android设备有这样的动作按钮, enter image description here

虽然有些设备喜欢,

enter image description here

在第一种情况下,所有操作按钮都在屏幕外,而在第二种情况下,操作按钮在屏幕下方(屏幕内)...如何检测操作按钮的位置?我根本不知道.. !!

4 个答案:

答案 0 :(得分:1)

查看官方Android文档:http://developer.android.com/reference/android/view/KeyCharacterMap.html#deviceHasKey%28int%29

方法deviceHasKey将解决您的问题。 (使用密钥代码KEYCODE_MENU,KEYCODE_HOME,KEYCODE_BACK)。 希望它有所帮助。

答案 1 :(得分:1)

也许在onCreate()

中执行以下检查

for api 14及以上

boolean PermanentMenuKey = ViewConfiguration.get(this).hasPermanentMenuKey(); // true if physical, false if virtual

表示较低的api:

boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK);
boolean hasHomeKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_HOME);

if (hasBackKey && hasHomeKey) {
    // no navigation bar, unless it is enabled in the settings
} else {
    // 99% sure there's a navigation bar
}

答案 2 :(得分:0)

你可以在这里得到答案。 Check for navigation bar

P.S。栏的正式名称是"导航栏"
https://developer.android.com/training/system-ui/navigation.html

答案 3 :(得分:0)

找到解决方案here,但并非100%保证可以为所有设备工作,某些设备(如HTC,LAVA等)无法使用。此外,minApi需要13+ ...... !!