2

Androidタブレットのステータスバーを非表示にする方法を高低で検索してきました。タブレットをルート化しない限り、そうすることができないことはわかっています。

私が抱えている主な問題は、アプリに書き込みを行うと、wi-fi セクションがポップアップすることです。

ナビゲーションを非表示にする/ナビゲーションを暗くするフラグ View.SYSTEM_UI_FLAG_HIDE_NAVIGATION または SYSTEM_UI_FLAG_LOW_PROFILE を知っています。

私が必要としているのは: ギャラリー アプリケーション (Android に組み込まれている) には、画像をトラバースし、シングル タッチでのみナビゲーションをポップし、シングル タッチで非表示にする機能があります。このバーをトリガーする他のジェスチャはありません。

似たようなものを実装する方法が必要です。

誰かが私を正しい方向に向けることができれば幸いです。

詳細 :

タブレット:Samsung Galaxy Note 10.1 Android バージョン:4.1.2

4

1 に答える 1

4

実際、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);
    }
于 2013-09-06T10:01:45.867 に答える