実際、Android バージョンが 4 以上のタブレットでは非表示にすることはできませんが、次のようにして試すことができます。
SYSTEM_UI_FLAG_LOW_PROFILE フラグは、STATUS_BAR_HIDDEN フラグを置き換えます。このフラグを設定すると、システム バーまたはナビゲーション バーの「ロー プロファイル」モードが有効になります。ナビゲーション ボタンは薄暗くなり、システム バーの他の要素も非表示になります。これを有効にすると、システム ナビゲーション ボタンが気になることなく、より没入型のゲームを作成するのに役立ちます。
SYSTEM_UI_FLAG_VISIBLE フラグは、STATUS_BAR_VISIBLE フラグを置き換えて、システム バーまたはナビゲーション バーを表示するように要求します。
SYSTEM_UI_FLAG_HIDE_NAVIGATION は、ナビゲーション バーの完全な非表示を要求する新しいフラグです。これは、一部のハンドセットで使用されるナビゲーション バーに対してのみ機能することに注意してください(タブレットのシステム バーは非表示になりません)。. システムがユーザー入力を受け取るとすぐに、ナビゲーション バーが表示に戻ります。そのため、このモードは、主にビデオの再生や、画面全体が必要であるがユーザー入力は必要ないその他の場合に役立ちます。アクティビティの任意のビューで setSystemUiVisibility() を呼び出すことにより、システム バーとナビゲーション バーにこれらの各フラグを設定できます。ウィンドウ マネージャーは、ウィンドウに入力フォーカスがある限り、ウィンドウ内のすべてのビューのすべてのフラグを組み合わせて (または一緒に)、それらをシステム UI に適用します。ウィンドウが入力フォーカスを失うと (ユーザーがアプリから移動するか、ダイアログが表示される)、フラグは無効になります。同様に、これらのビューをビュー階層から削除すると、それらのフラグは適用されなくなります。
私が見つけた別の解決策は、次のようなレイアウトのビューを提供することでした:
yourView.setSystemUiVisibility(8);
タブレットで動作すると言われていますが、実際に試したことはありません。
もう 1 つはこのメソッドを追加し、表示したい内容に応じて True または False を渡すだけです。
void setNavVisibility(boolean visible) {
int newVis = mBaseSystemUiVisibility;
if (!visible) {
newVis |= SYSTEM_UI_FLAG_LOW_PROFILE | SYSTEM_UI_FLAG_FULLSCREEN;
}
final boolean changed = newVis == getSystemUiVisibility();
// Unschedule any pending event to hide navigation if we are
// changing the visibility, or making the UI visible.
if (changed || visible) {
Handler h = getHandler();
if (h != null) {
h.removeCallbacks(mNavHider);
}
}
// Set the new desired visibility.
setSystemUiVisibility(newVis);
mTitleView.setVisibility(visible ? VISIBLE : INVISIBLE);
mSeekView.setVisibility(visible ? VISIBLE : INVISIBLE);
}