2016-07-07 10 views
6

私は自分のAndroidアプリを全画面にしたいのですが、特定の画面(設定画面)にAndroidのナビゲーションバーが表示されます。ナビゲーションバーを画面上に永久に隠すことは危険ですが、これが可能かどうかを知りたいと思います。私は自分のデバイスに根を張り、Xposedフレームワークを使用してみました。プログラムで没入モードを有効/無効にする

ナビゲーションバーまたは「スティッキーモード」をプログラムで無効にして後で再度有効にする方法はありますか?

編集:私はAndroidの没入型モードを見ましたが、ユーザーがエッジに触れるとナビゲーションバーが表示されるようです。私は彼らが私の設定画面に行くまで、ナビゲーションバーのヒントを削除したい。

答えて

2

はい可能です。必要な機能を実現するには、以下のコードスニペットを使用してください。詳細については

// This snippet hides the system bars. 
private void hideSystemUI() { 
    // Set the IMMERSIVE flag. 
    // Set the content to appear under the system bars so that the content 
    // doesn't resize when the system bars hide and show. 
    View decorView = getWindow().getDecorView(); 
    decorView.setSystemUiVisibility(
      View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
      | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
      | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
      | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar 
      | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar 
      | View.SYSTEM_UI_FLAG_IMMERSIVE); 
} 

// This snippet shows the system bars. It does this by removing all the flags 
// except for the ones that make the content appear under the system bars. 
private void showSystemUI() { 
    View decorView = getWindow().getDecorView(); 
    decorView.setSystemUiVisibility(
      View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
      | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
      | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
} 

のGoogleドキュメントの下に参照してください。

https://developer.android.com/training/system-ui/immersive.html

EDIT 1:永久にあなたは、この(ハック)のような何かを試みることができるかもしれそれを非表示にするには

decorView.setOnSystemUiVisibilityChangeListener 
       (new View.OnSystemUiVisibilityChangeListener() { 
        @Override 
        public void onSystemUiVisibilityChange(int visibility) { 

          hideSystemUI(); 


        } 
       });` 
+0

ご返信ありがとうございます。私が投稿する前にこれを見ていましたが、Immersive Modeの質問では、「システムバーが通常表示されている領域に沿ってスワイプしてシステムバーを表示できます。これはhide()をオーバーライドしませんか?ユーザーが設定画面に移動するまで無効にしたい – Jason

+0

はい、実際にはユーザーが最初に没入型モードを開いたときにチュートリアルが表示されます。これはスワイプダウンがフルスクリーンモードを閉じることを彼に伝えます。 –

+0

そうです、そして、私は彼らがフルスクリーンモードを閉じるのを望んでいません。*彼らが私の他のスクリーンの1つに行くのでない限り。それが私の本当の疑問です。私は特定の画面に行くまでユーザーがナビゲーションバーに完全にアクセスできないようにしたい。 – Jason

関連する問題