0

Android 4.0.3 でシステム バーを非表示/最小化しようとしています。現時点では、私はやっています

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

onCreate私の活動の場合。ユーザーが画面に触れるとすぐに、バーが再び表示されます。他の STO スレッドによると、この動作は回避できません。私の考えは、私のビューでタッチイベントをキャッチし、表示された直後にバーを再非表示にすることです。上記のコードをクリック ハンドラで実行しても効果はありません。(ほとんど) 隠れたバーを達成する方法は?

4

2 に答える 2

1

「なぜ」については話さないで、「どのように」についてだけ話します :-)

だから、約

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 です。

.

于 2012-12-05T14:32:09.353 に答える
0

非表示にすることはできませんが、ホーム以外は無効にすることができます。このリンクを試してください。. SYSTEM_UI_FLAG_LOW_PROFILE を使用すると、システム バーを暗くすることができ、使用onWindowFocusChanged()するとフォーカスを取得して折りたたむことができます。

于 2013-03-27T06:15:39.070 に答える