Masquer la barre de navigation
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Cette leçon explique comment masquer la barre de navigation, qui a été introduite dans
Android 4.0 (niveau d'API 14).
Bien que cette leçon se concentre sur le masquage
barre de navigation, concevez votre application de façon à masquer la barre d'état
en même temps, comme décrit dans la section Masquer la barre d'état.
Masquer les barres de navigation et d'état (tout en les gardant facilement accessibles)
permet au contenu d'utiliser tout l'espace d'affichage, offrant ainsi une expérience plus immersive
l'expérience utilisateur.
Figure 1 : Barre de navigation.
Masquer la barre de navigation
Vous pouvez masquer la barre de navigation à l'aide des boutons
SYSTEM_UI_FLAG_HIDE_NAVIGATION
. Cet extrait masque à la fois
la barre de navigation
et la barre d’état:
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);
Remarques :
- De cette manière, si vous appuyez n'importe où sur l'écran, la barre de navigation (et
barre d'état) pour réapparaître et rester visible. L'interaction de l'utilisateur entraîne la création
être effacés.
- Une fois les indicateurs effacés, votre application doit les réinitialiser si vous
masquer les barres à nouveau. Consultez la section Répondre aux changements de visibilité de l'interface utilisateur pour découvrir
sur la manière d'écouter les changements de visibilité de l'UI afin que votre application puisse
réagir en conséquence.
- L'endroit où vous définissez les indicateurs d'interface utilisateur fait la différence. Si vous masquez les barres système dans les
onCreate()
et que l'utilisateur appuie sur Accueil, les barres système
réapparaître. Lorsque l'utilisateur rouvre l'activité, onCreate()
ne seront pas appelés, les barres système resteront visibles. Si vous souhaitez que les modifications
de l'UI du système
persistant lorsque l'utilisateur accède à votre activité et la quitte, définissez des indicateurs d'interface utilisateur dans
onResume()
ou onWindowFocusChanged()
.
- La méthode
setSystemUiVisibility()
uniquement
a un effet si la vue depuis laquelle vous l'appelez est visible.
- Si vous quittez la vue, des signalements
défini avec
setSystemUiVisibility()
à supprimer.
Faire apparaître le contenu derrière la barre de navigation
Sur Android 4.1 ou version ultérieure, vous pouvez définir le contenu de votre application pour qu'il apparaisse derrière
la barre de navigation, de sorte que le contenu ne soit pas redimensionné lorsque la barre de navigation est masquée et
des séries TV. Pour ce faire, utilisez
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
Vous devrez peut-être aussi utiliser
SYSTEM_UI_FLAG_LAYOUT_STABLE
pour que votre appli conserve
une mise en page stable.
Lorsque vous utilisez cette approche, il est de votre responsabilité de vous assurer que les parties critiques
de l'interface utilisateur de votre application
ne sont pas couvertes par les barres système. Pour plus
discussion sur ce sujet, consultez la
Masquage de la barre d'état.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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."]]