Creating immersive media playback or gaming experiences in Android requires hiding the status bar, action bar, and system navigation bar. Android 11 (API 30) deprecated older systemUiVisibility flags in favor of WindowInsetsControllerCompat.
Kotlin: Immersive Fullscreen Mode (Android API 30+)
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsControllerCompat
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Hide action bar
supportActionBar?.hide()
// Enable immersive fullscreen using WindowInsetsControllerCompat
WindowCompat.setDecorFitsSystemWindows(window, false)
WindowInsetsControllerCompat(window, window.decorView).apply {
hide(WindowInsetsCompat.Type.statusBars() or WindowInsetsCompat.Type.navigationBars())
systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
}
}
}
Comments and corrections