「なぜ」については話さないで、「どのように」についてだけ話します :-)
だから、約
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
これは、別個のナビゲーション バーとステータス バーではなくシステム バーを使用するタブレット デバイスには影響しません。
タブレットでは、試すことができます (API レベル 14 以降)
myView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
イベントを検出するには、これを使用してイベントをキャッチできると思います。
myView.setOnSystemUiVisibilityChangeListener(
new OnSystemUiVisibilityChangeListener()
{
public void onSystemUiVisibilityChange(int visibility)
{
if (visibility == View.SYSTEM_UI_FLAG_VISIBLE) {
// TODO whatever you want
}
else {
// TODO what to do in the other case
}
}
}
);
より一般的には、「Professional Android 4 Application development」からの追加のアドバイスを次に示します。
通常、UI 内の他の変更をナビゲーションの可視性の変更と同期させることをお勧めします。たとえば、「フル スクリーン モード」の開始と終了に基づいて、アクション バーやその他のナビゲーション コントロールの非表示と表示を選択できます。これを行うには、OnSystemUiVisibilityChangeListener を View に登録します。通常は、ナビゲーションの可視性を制御するために使用している View です。
.