Navigation 3 est une nouvelle bibliothèque de navigation conçue pour fonctionner avec Compose. Avec Navigation 3, vous avez le contrôle total de votre pile "Retour". La navigation vers et depuis les destinations est aussi simple que l'ajout et la suppression d'é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 le contenu auquel l'utilisateur a accédé
- Une UI qui se met automatiquement à jour en fonction des modifications apportées à la pile "Retour" (y compris les animations)
- Champ d'application des éléments de la pile "Retour", permettant de conserver l'état lorsqu'un élément se trouve dans la pile "Retour"
- Système de mise en page adaptative permettant d'afficher plusieurs destinations en même temps et de passer facilement de l'une à l'autre
- Mécanisme permettant au contenu de communiquer avec sa mise en page parente (métadonnées)
De manière générale, vous implémentez la navigation 3 comme suit:
- Définissez le contenu auquel les utilisateurs peuvent accéder dans votre application, chacun avec une clé unique, et ajoutez une fonction pour résoudre cette clé dans le contenu. Consultez Résoudre les clés de contenu.
- Créez une pile "Retour" sur laquelle les clés sont poussées et supprimées lorsque les utilisateurs naviguent dans votre application. Consultez Créer une pile "Retour".
- Utilisez un
NavDisplay
pour afficher la pile "Retour" de votre application. Chaque fois que la pile "Retour" change, l'UI est mise à jour pour afficher le contenu pertinent. Consultez Afficher la pile "Retour". - Modifiez les stratégies de scène de
NavDisplay
si nécessaire pour prendre en charge les mises en page adaptatives et différentes plates-formes.
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 de la manière suivante:
- Intégration plus simple avec Compose
- Vous permet de contrôler entièrement la pile "Retour"
- Permet de créer des mises en page pouvant lire plusieurs destinations à la fois à partir de la pile "Retour", ce qui leur permet de s'adapter aux modifications de la taille de la fenêtre et d'autres entrées.
Pour en savoir plus sur les principes de Navigation 3 et les choix de conception des API, consultez cet article de blog.
Exemples de code
Le dépôt de recettes contient des exemples d'utilisation des composants de Navigation 3 pour résoudre les problèmes de navigation courants.