Androidのステータスバー、ナビゲーションバーを非表示にする方法

3551 ワード

ナステータスバー、ビゲーションバーを非表示にする方法

ここで起債する方法は、SDKバージョン30の場合です。
また、設定するフラグによって、表示する方法が異なるようです。
自分は、画面外からフリックすることで半透明のナビゲーションバーが表示してほしいので、以下の設定にしました。

buildSDKは30なのですが、ビルドエラー回避のためにSDKバージョン19以上の実装もしています。※自分が使っているアプリは、minSDKを21に設定しています。

MainActivity.kt
override fun onResume() {
    super.onResume()
    val SDK_INT = android.os.Build.VERSION.SDK_INT
    if (SDK_INT >= 30) {
        window.insetsController?.hide(WindowInsets.Type.statusBars() or WindowInsets.Type.navigationBars())
        window.insetsController?.systemBarsBehavior =
            WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
    } else if (SDK_INT >= 19) {
        val decorView = window.decorView
        decorView.systemUiVisibility =
            View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or
                    View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
    }
}