Einige Inhalte werden am besten im Vollbildmodus wiedergegeben, ohne dass Indikatoren im Statusleiste oder der Navigationsleiste. Beispiele: Videos, Spiele, Bilder Galerien, Büchern und Präsentationsfolien. Dies wird als immersiven Modus. Auf dieser Seite erfahren Sie, wie Sie Nutzer mit Inhalte im Vollbildmodus anzuzeigen.
Im immersiven Modus können Nutzer das versehentliche Beenden eines Spiels vermeiden bietet ein immersives Erlebnis mit Bildern, Videos und Büchern. Sie sollten jedoch bedenken, wie oft Nutzende die App öffnen und schließen, um sich Benachrichtigungen anzusehen, um spontane Suchen oder andere Aktionen durchzuführen. Weil der immersive Modus Nutzer verlieren den einfachen Zugriff auf die Systemsteuerung. Nur der immersive Modus wird verwendet. wenn der Vorteil für die User Experience über die Nutzung zusätzlicher Bildschirme hinausgeht Leerzeichen.
WindowInsetsControllerCompat.hide()
verwenden
zum Ausblenden der Systemleisten und WindowInsetsControllerCompat.show()
um sie zurückzugewinnen.
Das folgende Snippet zeigt ein Beispiel für die Konfiguration einer Schaltfläche zum Ein- und Ausblenden Systemleisten.
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { ... val windowInsetsController = WindowCompat.getInsetsController(window, window.decorView) // Configure the behavior of the hidden system bars. windowInsetsController.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE // Add a listener to update the behavior of the toggle fullscreen button when // the system bars are hidden or revealed. ViewCompat.setOnApplyWindowInsetsListener(window.decorView) { view, windowInsets -> // You can hide the caption bar even when the other system bars are visible. // To account for this, explicitly check the visibility of navigationBars() // and statusBars() rather than checking the visibility of systemBars(). if (windowInsets.isVisible(WindowInsetsCompat.Type.navigationBars()) || windowInsets.isVisible(WindowInsetsCompat.Type.statusBars())) { binding.toggleFullscreenButton.setOnClickListener { // Hide both the status bar and the navigation bar. windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()) } } else { binding.toggleFullscreenButton.setOnClickListener { // Show both the status bar and the navigation bar. windowInsetsController.show(WindowInsetsCompat.Type.systemBars()) } } ViewCompat.onApplyWindowInsets(view, windowInsets) } }
Java
@Override protected void onCreate(Bundle savedInstanceState) { ... WindowInsetsControllerCompat windowInsetsController = WindowCompat.getInsetsController(getWindow(), getWindow().getDecorView()); // Configure the behavior of the hidden system bars. windowInsetsController.setSystemBarsBehavior( WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE ); // Add a listener to update the behavior of the toggle fullscreen button when // the system bars are hidden or revealed. ViewCompat.setOnApplyWindowInsetsListener( getWindow().getDecorView(), (view, windowInsets) -> { // You can hide the caption bar even when the other system bars are visible. // To account for this, explicitly check the visibility of navigationBars() // and statusBars() rather than checking the visibility of systemBars(). if (windowInsets.isVisible(WindowInsetsCompat.Type.navigationBars()) || windowInsets.isVisible(WindowInsetsCompat.Type.statusBars())) { binding.toggleFullscreenButton.setOnClickListener(v -> { // Hide both the status bar and the navigation bar. windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()); }); } else { binding.toggleFullscreenButton.setOnClickListener(v -> { // Show both the status bar and the navigation bar. windowInsetsController.show(WindowInsetsCompat.Type.systemBars()); }); } return ViewCompat.onApplyWindowInsets(view, windowInsets); }); }
Sie können optional den Typ der Systemleisten angeben, die ausgeblendet und bestimmt werden sollen. wenn Nutzende mit ihnen interagieren.
Angeben, welche Systembalken ausgeblendet werden sollen
Übergeben Sie einen der folgenden Parameter, um den Typ der Systembalken anzugeben, die ausgeblendet werden sollen
an WindowInsetsControllerCompat.hide()
.
Verwenden Sie
WindowInsetsCompat.Type.systemBars()
für Folgendes: Blenden Sie beide Systemleisten aus.Verwenden Sie
WindowInsetsCompat.Type.statusBars()
für Folgendes: nur die Statusleiste ausblenden.Verwenden Sie
WindowInsetsCompat.Type.navigationBars()
für Folgendes: nur die Navigationsleiste ausblenden.
Verhalten ausgeblendeter Systemleisten angeben
WindowInsetsControllerCompat.setSystemBarsBehavior()
verwenden
wird festgelegt, wie sich ausgeblendete Systemleisten verhalten, wenn der Nutzer mit ihnen interagiert.
WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_TOUCH
verwenden um ausgeblendete Systemleisten bei jeder Nutzerinteraktion auf der entsprechenden Display.WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_SWIPE
verwenden um versteckte Systemleisten bei System-Gesten einzublenden, wie z. B. beim Wischen von an der Stelle, an der die Leiste ausgeblendet ist.WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
verwenden um vorübergehend ausgeblendete Systemleisten mit System-Gesten einzublenden, z. B. Wischen vom Bildschirmrand, wo die Leiste ausgeblendet ist. Diese vorübergehende Systemleisten überlagern den Inhalt Ihrer App und Transparenz und werden nach einer kurzen Zeitüberschreitung automatisch ausgeblendet.