Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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 interface utilisateur 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 adaptatif 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, elle met à jour l'UI pour afficher du 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.
Navigation 3 améliore l'API Jetpack Navigation d'origine de la manière suivante:
Intégration simplifiée 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.
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,["# Navigation 3\n\n| **Experimental:** Navigation 3 is in alpha. The APIs may change in the future. Please file bugs and feedback using the [issue tracker](https://issuetracker.google.com/issues/new?component=1750212&template=2102223).\n\nNavigation 3 is a new navigation library designed to work with Compose. With\nNavigation 3, you have full control over your back stack, and navigating to and\nfrom destinations is as simple as adding and removing items from a list. It\ncreates a flexible app navigation system by providing:\n\n- Conventions for modeling a back stack, where each entry on the back stack represents content that the user has navigated to\n- A UI that automatically updates with back stack changes (including animations)\n- A scope for items in the back stack, allowing state to be retained while an item is in the back stack\n- An adaptive layout system that allows multiple destinations to be displayed at the same time, and allowing seamless switching between those layouts\n- A mechanism for content to communicate with its parent layout (metadata)\n\nAt a high level, you implement Navigation 3 in the following ways:\n\n1. Define the content that users can navigate to in your app, each with a unique key, and add a function to resolve that key to the content. See [Resolve keys\n to content](/guide/navigation/navigation-3/basics#resolve-keys).\n2. Create a back stack that keys are pushed onto and removed as users navigate your app. See [Create a back stack](/guide/navigation/navigation-3/basics#create-back).\n3. Use a [`NavDisplay`](/reference/kotlin/androidx/navigation3/ui/package-summary#NavDisplay(kotlin.collections.List,androidx.compose.ui.Modifier,androidx.compose.ui.Alignment,kotlin.Function1,kotlin.collections.List,androidx.navigation3.ui.SceneStrategy,androidx.compose.animation.SizeTransform,kotlin.Function1,kotlin.Function1,kotlin.Function1,kotlin.Function1)) to display your app's back stack. Whenever the back stack changes, it updates the UI to display relevant content. See [Display\n the back stack](/guide/navigation/navigation-3/basics#display-back).\n4. Modify `NavDisplay`'s [scene strategies](/guide/navigation/navigation-3/custom-layouts) as needed to support adaptive layouts and different platforms.\n\nYou can see the [full source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:navigation3/) for Navigation 3 on AOSP.\n\nImprovements upon Jetpack Navigation\n------------------------------------\n\nNavigation 3 improves upon the original Jetpack Navigation API in the following\nways:\n\n- Provides a simpler integration with Compose\n- Offers you full control of the back stack\n- Makes it possible to create layouts that can read more than one destination from the back stack at the same time, allowing them to adapt to changes in window size and other inputs.\n\nRead more about Navigation 3's principles and API design choices in [this blog\npost](https://android-developers.googleblog.com/2025/05/announcing-jetpack-navigation-3-for-compose.html).\n\nCode samples\n------------\n\nThe [recipes repository](https://github.com/android/nav3-recipes) contains examples of how to use the\nNavigation 3 building blocks to solve common navigation challenges."]]