0

アプリの起動時に、Androidデバイスのソフトキー(ステータスバーとナビゲーションバー)を非表示にする方法があるのでしょうか?たとえば、ブランド、タイトル、メインメニュー画面の前に実行時にソフトキーを隠しながら、最初は黒い画面を表示するゲームを考えてみましょう。アプリの起動時に即座にステータスバーとナビゲーションバーを非表示にする

私はMainActivityに次のコードスニペットを含め、そして時にアプリが起動し、私は最初に1秒程度とランタイムでソフトキーを白い画面を参照してMainActivityのスレッドの実行が完了したら、その後のソフトキーは後に消えます。

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    if (hasFocus) { 
     getWindow().getDecorView().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 
         | View.SYSTEM_UI_FLAG_FULLSCREEN 
         | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 
    } 
} 

ありがとうございました。

* 2017年1月19日のAS UPDATE:* 含めた後:ナ​​ビゲーションとは対照的に、アプリのテーマに

<item name="android:windowFullscreen">true</item> 

...、のみステータスバーが時間通りに隠しバー。私の2番目の投稿 - Hiding the navigation bar immediately on app launch

+0

多分それは、[この解決策](http://stackoverflow.com/questions/38530475/android-fullscreen-app-prevent-access-を利用するために、あなたのケースで可能です〜ステータスバー/ 38533354#38533354)... – Onik

答えて

3

あなたのstyles.xmlを見て、項目android:windowFullscreenを追加してください。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="android:windowFullscreen">true</item> 
</style> 

私は役立つことを望みます。

ベン

+0

これは既に完了しました。変わりはない! – DaveNOTDavid

+0

奇妙なことに、私は自分のデバイスを試してみました。幸運のデバッグ。 – Benjamin

+0

ステータスとナビゲーションバーの両方に対応していますか?どのようなデバイスを使用しましたか? Android 6.0を実行しているデバイスで上記のコードを試したところ、ステータスバーだけが適切に隠れているためです。 – DaveNOTDavid

0

(ここで説明 - https://developer.android.com/training/system-ui/status.html)いくつかの方法があります。

1)setSystemUiVisibility(への別の呼び出しを行いますが)あなたの活動ののonCreate()メソッドで。

2)Android 4.0以下の場合。あなたはこのようなXMLレイアウトで、あなたのテーマを変更することができます。 ... アンドロイド:テーマ= "@アンドロイド:スタイル/ Theme.Holo.NoActionBar.Fullscreen" のAndroid 4.0と下位の場合> ...

3) 。アクティビティonCreate(Bundle savedInstanceState)メソッドのステータスバーを非表示にします。ここでは、前述のサイトからの例です:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
    if (Build.VERSION.SDK_INT < 16) { 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    } 
+0

私は現在、アプリケーションを表示するための没入型の固定モードに頼っていますフルスクリーンでAndroid 4.4を最低限使用します...しかし、ゲームやYouTubeのフルスクリーンモードのように、スタートアップ時にステータスバーとナビゲーションバーを同時に非表示にする方法?最近投稿した関連する質問があります:http://stackoverflow.com/questions/41748014/hiding-the-navigation-bar-immediately-on-app-launch – DaveNOTDavid

+0

フラグView.SYSTEM_UI_FLAG_HIDE_NAVIGATIONをsetSystemUiVisibilityに追加してみましょう。ただし、どこに触れてもナビゲーションバーが再び表示されます。 – Reaper

+0

代わりに、SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATIONを使用して、アプリケーションのコンテンツをナビゲーションバーの背後に表示することができます。 – Reaper

関連する問題