Immersive full-screen mode
SYSTEM_UI_FLAG_IMMERSIVE
API Level 19で追加されたSYSTEM_UI_FLAG_IMMERSIVEを使うと、NavigationBarを消した状態でタッチイベントをハンドリングできます。画面下部をSwapすることでNavigationBar非表示を解除できます。
ただし、Action barのメニューを開いたり、オフスクリーン→オンスクリーンで解除されてしまうので制御が必要です。
http://developer.android.com/reference/android/view/View.html#SYSTEM_UI_FLAG_IMMERSIVE
SYSTEM_UI_FLAG_HIDE_NAVIGATIONと同時にセットする必要があります。
(SYSTEM_UI_FLAG_HIDE_NAVIGATIONを拡張したフラグ)
Viewに対して、フラグをセット。
1 2 3 | View view = findViewById(R.id.layout); view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); |
初回表示の際、次のような注意画面が表示されます。
NavigationBar非表示の画面。
SYSTEM_UI_FLAG_IMMERSIVE_STICKY
SYSTEM_UI_FLAG_IMMERSIVEとことなり、画面下部をSwapすることでNavigationBarを一時的に表示できます。NavigationBar表示後、一定時間が経過すると、再度、非表示モードに戻ります。
http://developer.android.com/reference/android/view/View.html#SYSTEM_UI_FLAG_IMMERSIVE_STICKY
Viewに対して、フラグをセット。
1 2 3 | View view = findViewById(R.id.layout); view.setSystemUiVisibility(View. SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); |
画面下部をSwapするとNavigationBarを表示します。