Systemleisten dimmen

In dieser Lektion wird beschrieben, wie die Systemleisten (Status und Navigationsleisten) unter Android 4.0 (API-Level 14) und höher abgedunkelt werden. In früheren Versionen bietet Android keine integrierte Möglichkeit zum Dimmen der Systemleisten.

Bei diesem Ansatz wird die Größe des Inhalts nicht geändert, aber die Symbole in den Systemleisten werden visuell ausgeblendet. Sobald der Nutzer die Statusleiste oder den Bereich der Navigationsleiste auf dem Bildschirm berührt, werden beide Leisten vollständig sichtbar. Der Vorteil dieses Ansatzes besteht darin, dass die Balken weiterhin vorhanden sind, aber ihre Details verdeckt werden. So entsteht ein immersives Erlebnis, ohne den einfachen Zugriff auf die Balken zu beeinträchtigen.

Status- und Navigationsleisten dimmen

So können Sie die Status- und Navigationsleiste mit dem Flag SYSTEM_UI_FLAG_LOW_PROFILE dimmen:

Kotlin

// This example uses decor view, but you can use any visible view.
activity?.window?.decorView?.apply {
    systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE
}

Java

// This example uses decor view, but you can use any visible view.
View decorView = getActivity().getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE;
decorView.setSystemUiVisibility(uiOptions);

Sobald der Nutzer die Status- oder Navigationsleiste berührt, wird das Flag gelöscht und die Balken werden nicht eingeblendet. Nachdem die Markierung entfernt wurde, muss die App sie zurücksetzen, wenn du die Balken wieder dimmen möchtest.

Abbildung 1 zeigt ein Galeriebild, in dem die Navigationsleiste abgeblendet ist. Beachten Sie, dass die Galerie-App die Statusleiste vollständig überdeckt, aber nicht gedimmt wird. Die Navigationsleiste (rechts im Bild) weist schwache weiße Punkte zur Darstellung der Navigationssteuerelemente auf:

Systemleisten

Abbildung 1: Abgeblendete Systemleisten.

Abbildung 2 zeigt dasselbe Galeriebild, aber mit eingeblendeten Systemleisten:

Systemleisten

Abbildung 2: Sichtbare Systemleisten.

Status- und Navigationsleiste einblenden

Wenn Sie Flags, die mit setSystemUiVisibility() festgelegt wurden, programmatisch löschen möchten, gehen Sie so vor:

Kotlin

activity?.window?.decorView?.apply {
    // Calling setSystemUiVisibility() with a value of 0 clears
    // all flags.
    systemUiVisibility = 0
}

Java

View decorView = getActivity().getWindow().getDecorView();
// Calling setSystemUiVisibility() with a value of 0 clears
// all flags.
decorView.setSystemUiVisibility(0);