2012年4月6日金曜日

Android 4.0 でNavigationBarが表示されているか判定する方法

ICSのNavigationBarが画面内に表示されているかどうかを取得する方法が、あんまりみつからなかったのでメモ

Activityなどのなかで、

public static boolean isNavigationBarVisible(){
    return !ViewConfigration.get(this).hasPermanentMenuKey();
}

でとれます。

ViewConfigurationはstaticメソッドのgetにContextを引数として渡すことでインスタンスを取得でき、そのhasPermanentMenuKeyメソッドは、端末にビルトインされたメニューボタンがあるかどうかを返します。

なので、その否定がNavigationBarの有無と一致します。