Questa lezione descrive come nascondere la barra di navigazione, Android 4.0 (livello API 14).
Anche se questa lezione si concentra su come nascondere barra di navigazione, devi progettare l'app in modo da nascondere la barra di stato contemporaneamente, come descritto in Nascondere la barra di stato. Occultamento delle barre di navigazione e di stato (pur mantenendole facilmente accessibili) consente ai contenuti di utilizzare l'intero spazio di visualizzazione, offrendo così un ambiente più immersivo un'esperienza utente positiva.
Nascondi barra di navigazione
Puoi nascondere la barra di navigazione utilizzando il
SYSTEM_UI_FLAG_HIDE_NAVIGATION
flag. Questo snippet nasconde
la barra di navigazione e la barra di stato:
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);
Nota:
- Con questo approccio, toccando un punto qualsiasi dello schermo viene attivata la barra di navigazione (e barra di stato) per riapparire e rimanere visibile. A causa dell'interazione dell'utente, i flag vengono possono essere cancellati.
- Una volta cancellati i flag, l'app dovrà reimpostarli se vuoi nascondere di nuovo le barre. Consulta l'articolo Risposta alle modifiche della visibilità nell'interfaccia utente per un discussione su come ascoltare le modifiche alla visibilità dell'interfaccia utente affinché la tua app devono rispondere di conseguenza.
- Il punto in cui imposti i flag UI fa la differenza. Se nascondi le barre di sistema nella
onCreate()
e l'utente preme Home, le barre di sistema verranno riapparire. Quando l'utente riapre l'attività,onCreate()
non verranno chiamati, quindi le barre di sistema rimarranno visibili. Se vuoi che vengano apportate modifiche all'interfaccia utente vengono mantenuti man mano che l'utente entra ed esce dalla tua attività, imposta i flag UI nelleonResume()
oonWindowFocusChanged()
. - Solo il metodo
setSystemUiVisibility()
ha effetto se la visualizzazione da cui lo chiami è visibile. - L'uscita dalla visualizzazione causa flag
imposta con
setSystemUiVisibility()
da cancellare.
Fai in modo che i contenuti vengano visualizzati dietro la barra di navigazione
Su Android 4.1 e versioni successive, puoi impostare i contenuti della tua applicazione in modo che
barra di navigazione per fare in modo che i contenuti non vengano ridimensionati mentre la barra di navigazione si nasconde
visualizzati. A questo scopo, utilizza
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
.
Potresti dover usare anche
SYSTEM_UI_FLAG_LAYOUT_STABLE
per aiutare la tua app a mantenere
e stabile.
Quando utilizzi questo approccio, diventa tua responsabilità garantire che le parti critiche dell'UI dell'app non vengono coperte dalle barre di sistema. Per ulteriori informazioni su questo argomento, consulta Come nascondere la barra di stato.