Navigationsleiste ausblenden

In dieser Lektion wird beschrieben, wie die in Android 4.0 (API-Ebene 14) eingeführte Navigationsleiste ausgeblendet wird.

Auch wenn es in dieser Lektion um das Ausblenden der Navigationsleiste geht, sollten Sie Ihre App so gestalten, dass gleichzeitig auch die Statusleiste ausgeblendet wird, wie unter Statusleiste ausblenden beschrieben. Durch das Ausblenden der Navigations- und Statusleiste, die aber trotzdem leicht zugänglich sind, kann der Inhalt den gesamten Anzeigebereich nutzen und so eine immersivere Nutzererfahrung bieten.

Systemleisten

Abbildung 1: Navigationsleiste.

Navigationsleiste ausblenden

Sie können die Navigationsleiste mit dem Flag SYSTEM_UI_FLAG_HIDE_NAVIGATION ausblenden. Durch dieses Snippet werden sowohl die Navigationsleiste als auch die Statusleiste ausgeblendet:

Kotlin

window.decorView.apply {
    // Hide both the navigation bar and the status bar.
    // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
    // a general rule, you should design your app to hide the status bar whenever you
    // hide the navigation bar.
    systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN
}

Java

View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

Beachten Sie Folgendes:

  • Wenn Sie bei diesem Ansatz eine beliebige Stelle auf dem Bildschirm berühren, werden die Navigationsleiste und die Statusleiste wieder eingeblendet und bleiben sichtbar. Durch die Nutzerinteraktion werden die Flags gelöscht.
  • Nachdem die Flags gelöscht wurden, muss Ihre App sie zurücksetzen, wenn Sie die Balken wieder ausblenden möchten. Unter Reagieren auf Änderungen der UI-Sichtbarkeit wird erläutert, wie Sie auf Änderungen der UI-Sichtbarkeit reagieren können, damit Ihre Anwendung entsprechend reagieren kann.
  • Es spielt eine Rolle, wo Sie die UI-Flags festlegen. Wenn Sie die Systemleisten in der onCreate()-Methode Ihrer Aktivität ausblenden und der Nutzer die Startbildschirmtaste drückt, werden die Systemleisten wieder angezeigt. Wenn der Nutzer die Aktivität wieder öffnet, wird onCreate() nicht aufgerufen. Daher bleiben die Systemleisten sichtbar. Wenn Sie möchten, dass Änderungen an der System-UI beibehalten werden, während der Nutzer Ihre Aktivität ein- und ausgeht, legen Sie UI-Flags in onResume() oder onWindowFocusChanged() fest.
  • Die Methode setSystemUiVisibility() hat nur dann einen Effekt, wenn die Ansicht, über die sie aufgerufen wird, sichtbar ist.
  • Wenn Sie die Ansicht verlassen, werden die mit setSystemUiVisibility() festgelegten Flags gelöscht.

Inhalte hinter der Navigationsleiste anzeigen

Unter Android 4.1 und höher können Sie festlegen, dass der Inhalt Ihrer App hinter der Navigationsleiste angezeigt wird, sodass er sich nicht ändert, wenn die Navigationsleiste ein- und ausgeblendet wird. Verwenden Sie dazu SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION. Möglicherweise müssen Sie auch SYSTEM_UI_FLAG_LAYOUT_STABLE verwenden, damit Ihre App ein stabiles Layout hat.

Bei diesem Ansatz liegt es in Ihrer Verantwortung, dafür zu sorgen, dass kritische Teile der Benutzeroberfläche Ihrer App nicht von Systembalken verdeckt werden. Weitere Informationen zu diesem Thema finden Sie in der Lektion Statusleiste ausblenden.