Androidのシステムステータスバーを非表示にする方法

Androidで没入型のステータスバーを実現するには、以下の手順を実行できます。

  1. ActionBarのないテーマをstyles.xmlで定義します。たとえば、次のようにします。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
</style>
  1. アクティビティのonCreateメソッドで以下を実行して、ステータスバーとナビゲーションバーを非表示にしてレイアウトを全画面表示します。
public void hideStatusBar() {
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptions);
}
  1. ウィンドウのフォーカスが変更された時にActivityのonWindowFocusChangedメソッドを呼び出し、状態バーとナビゲーションバーがウィンドウにフォーカスしたときに非表示にします。
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
hideStatusBar();
}
}
  1. アクティビティのテーマを**AndroidManifest.xml** ファイル内で、以前に定義した沉浸テーマに設定する。
<activity
android:name=".MainActivity"
android:theme="@style/AppTheme">
<!-- ... -->
</activity>

これにより、Androidの没入型ステータスバーを実現できます。ActivityのonCreateメソッドとonWindowFocusChangedメソッドをオーバーライドし、没入型ステータスバーのスタイルとステータスバーを非表示にする操作をそれぞれ設定します。

bannerAds