Diminuisci l'intensità delle barre di sistema

Questa lezione descrive come attenuare le barre di sistema (ovvero, lo stato e le barre di navigazione) su Android 4.0 (livello API 14) e versioni successive. Android non offre un modo integrato per attenuare le barre di sistema nelle versioni precedenti.

Quando utilizzi questo approccio, i contenuti non vengono ridimensionati, ma le icone nelle barre di sistema si ritirano visivamente. Non appena l'utente tocca la barra di stato o l'area della barra di navigazione dello schermo, entrambe le barre diventano completamente visibili. Il vantaggio di questo approccio è che le barre sono ancora presenti, ma i dettagli sono oscurati, creando così un'esperienza immersiva senza sacrificare l'accesso semplice alle barre.

Attenuazione delle barre di stato e di navigazione

Puoi attenuare la luminosità delle barre di stato e di navigazione utilizzando il flag SYSTEM_UI_FLAG_LOW_PROFILE, come indicato di seguito:

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);

Non appena l'utente tocca la barra di stato o di navigazione, l'indicatore viene cancellato e le barre non vengono oscurate. Una volta cancellato il flag, l'app deve reimpostarlo se vuoi attenuare di nuovo le barre.

La Figura 1 mostra un'immagine di una galleria in cui la barra di navigazione è oscurata (tieni presente che l'app Galleria nasconde completamente la barra di stato, ma non la oscura). Sulla barra di navigazione (lato destro dell'immagine) sono presenti dei sottili puntini bianchi che rappresentano i controlli di navigazione:

barre di sistema

Figura 1. Barre di sistema oscurate.

La figura 2 mostra la stessa immagine della galleria, ma con le barre di sistema visualizzate:

barre di sistema

Figura 2. Barre di sistema visibili.

Visualizzazione delle barre di stato e di navigazione

Se vuoi cancellare in modo programmatico i flag impostati su setSystemUiVisibility(), procedi nel seguente modo:

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);