Masquer la barre de navigation

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.

barres système

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.