Navigation 3

Navigation 3 est une bibliothèque de navigation conçue pour fonctionner avec Compose. Avec Navigation 3, vous contrôlez entièrement votre pile "Retour" et vous naviguez entre les destinations en ajoutant et en supprimant des éléments d'une liste. Il crée un système de navigation d'application flexible en fournissant :

  • Conventions pour modéliser une pile Retour, où chaque entrée de la pile Retour représente un contenu vers lequel l'utilisateur a navigué
  • Une UI qui se met à jour automatiquement avec les modifications de la pile « Retour » (y compris les animations)
  • Portée des éléments de la pile "Retour", permettant de conserver l'état d'un élément lorsqu'il se trouve dans la pile "Retour"
  • Système de mise en page adaptatif qui permet d'afficher plusieurs destinations en même temps et de passer facilement d'une mise en page à l'autre
  • Mécanisme permettant au contenu de communiquer avec sa mise en page parente (métadonnées)
  • Communication entre les destinations pour renvoyer les résultats entre les écrans

En règle générale, vous implémentez Navigation 3 de l'une des manières suivantes :

  1. Définissez le contenu vers lequel les utilisateurs peuvent naviguer dans votre application, chacun avec une clé unique, et ajoutez une fonction pour résoudre cette clé en contenu. Consultez Résoudre les clés de contenu.
  2. Créez une pile arrière sur laquelle les clés sont ajoutées et supprimées à mesure que les utilisateurs naviguent dans votre application. Consultez Créer une pile arrière.
  3. Utilisez un NavDisplay pour afficher la pile "Retour" de votre application. Chaque fois que la pile de retour change, elle met à jour l'UI pour afficher le contenu pertinent. Consultez Afficher la pile "Retour".
  4. Modifiez les stratégies de scène de NavDisplay si nécessaire pour prendre en charge les mises en page adaptatives et les différentes plates-formes.
  5. Prise en charge des liens profonds pour accéder directement aux destinations.

Vous pouvez consulter le code source complet de Navigation 3 sur AOSP.

Améliorations apportées à Jetpack Navigation

Navigation 3 améliore l'API Jetpack Navigation d'origine des manières suivantes :

  • Simplifie l'intégration à Compose
  • Vous offre un contrôle total de la pile "Retour"
  • Permet de créer des mises en page capables de lire plusieurs destinations à la fois à partir de la pile "Retour", ce qui leur permet de s'adapter aux changements de taille de fenêtre et à d'autres entrées.

Pour en savoir plus sur les principes de Navigation 3 et les choix de conception de l'API, consultez l'article de blog sur l'annonce.

Exemples de code

Le dépôt de recettes contient des exemples d'utilisation des blocs de construction de Navigation 3 pour résoudre les problèmes de navigation courants.