Nascondi la barra di navigazione
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
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.
Figura 1. Barra di navigazione.
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 nelle
onResume()
o onWindowFocusChanged()
.
- 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.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-27 UTC."],[],[],null,["# Hide the navigation bar\n\nThis lesson describes how to hide the navigation bar, which was introduced in\nAndroid 4.0 (API level 14).\n\nEven though this lesson focuses on hiding the\nnavigation bar, you should design your app to hide the status bar\nat the same time, as described in [Hiding the Status Bar](/training/system-ui/status).\nHiding the navigation and status bars (while still keeping them readily accessible)\nlets the content use the entire display space, thereby providing a more immersive\nuser experience.\n\n**Figure 1.** Navigation bar.\n\nHide the Navigation Bar\n-----------------------\n\nYou can hide the navigation bar using the\n[SYSTEM_UI_FLAG_HIDE_NAVIGATION](/reference/android/view/View#SYSTEM_UI_FLAG_HIDE_NAVIGATION) flag. This snippet hides both\nthe navigation bar and the status bar: \n\n### Kotlin\n\n```kotlin\nwindow.decorView.apply {\n // Hide both the navigation bar and the status bar.\n // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as\n // a general rule, you should design your app to hide the status bar whenever you\n // hide the navigation bar.\n systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN\n}\n```\n\n### Java\n\n```java\nView decorView = getWindow().getDecorView();\n// Hide both the navigation bar and the status bar.\n// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as\n// a general rule, you should design your app to hide the status bar whenever you\n// hide the navigation bar.\nint uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION\n | View.SYSTEM_UI_FLAG_FULLSCREEN;\ndecorView.setSystemUiVisibility(uiOptions);\n```\n\nNote the following:\n\n- With this approach, touching anywhere on the screen causes the navigation bar (and status bar) to reappear and remain visible. The user interaction causes the flags to be be cleared.\n- Once the flags have been cleared, your app needs to reset them if you want to hide the bars again. See [Responding to UI Visibility Changes](/training/system-ui/visibility) for a discussion of how to listen for UI visibility changes so that your app can respond accordingly.\n- Where you set the UI flags makes a difference. If you hide the system bars in your activity's [onCreate()](/reference/android/app/Activity#onCreate(android.os.Bundle)) method and the user presses Home, the system bars will reappear. When the user reopens the activity, [onCreate()](/reference/android/app/Activity#onCreate(android.os.Bundle)) won't get called, so the system bars will remain visible. If you want system UI changes to persist as the user navigates in and out of your activity, set UI flags in [onResume()](/reference/android/app/Activity#onResume()) or [onWindowFocusChanged()](/reference/android/view/Window.Callback#onWindowFocusChanged(boolean)).\n- The method [setSystemUiVisibility()](/reference/android/view/View#setSystemUiVisibility(int)) only has an effect if the view you call it from is visible.\n- Navigating away from the view causes flags set with [setSystemUiVisibility()](/reference/android/view/View#setSystemUiVisibility(int)) to be cleared.\n\nMake Content Appear Behind the Navigation Bar\n---------------------------------------------\n\nOn Android 4.1 and higher, you can set your application's content to appear behind\nthe navigation bar, so that the content doesn't resize as the navigation bar hides and\nshows. To do this, use\n[SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION](/reference/android/view/View#SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION).\nYou may also need to use\n[SYSTEM_UI_FLAG_LAYOUT_STABLE](/reference/android/view/View#SYSTEM_UI_FLAG_LAYOUT_STABLE) to help your app maintain a\nstable layout.\n\nWhen you use this approach, it becomes your responsibility to ensure that critical parts\nof your app's UI don't end up getting covered by system bars. For more\ndiscussion of this topic, see the [Hiding the Status Bar](/training/system-ui/status#behind) lesson."]]