navigation3

  
Navigation 3 est une nouvelle bibliothèque de navigation conçue pour fonctionner avec Compose.
Dernière mise à jour Version stable Version finale Version bêta Version alpha
27 août 2025 - - - 1.0.0-alpha08

Déclarer des dépendances

Pour ajouter une dépendance à navigation3, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.

Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :

Groovy

dependencies {
    implementation "androidx.navigation3:navigation3-runtime:1.0.0-alpha08"
    implementation "androidx.navigation3:navigation3-ui:1.0.0-alpha08"
}

Kotlin

dependencies {
    implementation("androidx.navigation3:navigation3-runtime:1.0.0-alpha08")
    implementation("androidx.navigation3:navigation3-ui:1.0.0-alpha08")
}

Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.

Commentaires

Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.

Signaler un nouveau problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Aucune note de version pour cet artefact.

Version 1.0

Version 1.0.0-alpha08

27 août 2025

Publication d'androidx.navigation3:navigation3-*:1.0.0-alpha08. La version 1.0.0-alpha08 contient ces commits.

Nouvelles fonctionnalités

  • Ajout de nouvelles cibles Kotlin Multiplatform (KMP) aux artefacts Navigation3 Runtime. Navigation3 Runtime est désormais compatible avec les plates-formes suivantes : JVM (Android et Desktop), Native (Linux, iOS, watchOS, macOS, MinGW) et Web (JavaScript, WasmJS). (I55078, b/424410398, b/419294028, b/419046226). Remarque : Cela ne fournit pas de cibles KMP pour l'artefact Navigation3 UI. Sur d'autres plates-formes, vous devrez implémenter votre propre NavDisplay personnalisé. Si vous souhaitez que cette fonctionnalité soit prise en charge, veuillez voter pour le problème Jetbrains ici et suivre sa progression pour obtenir de l'aide supplémentaire.
  • L'objet NavDisplayInfo est désormais public et peut être utilisé pour récupérer la liste des entrées visibles à partir de NavDisplay. (Ibc91f)

Modifications apportées à l'API

  • Ajout d'un nouveau NavBackStackSerializer à utiliser conjointement avec rememberNavBackStack pour effectuer la restauration de l'état. rememberNavBackStack() accepte désormais également un SavedStateConfiguration qui peut être utilisé pour fournir votre propre configuration. (I2f4d2, I4cd58, b/420443609)

Correction de bugs

  • Correction d'un problème qui entraînait le déclenchement d'événements de cycle de vie incorrects lors de la navigation. (I8bf6d, b/425901162, b/434109022)

Problèmes connus

  • Un bug introduit par I8bf6d a fait que les cycles de vie étaient basés sur des scènes au lieu d'entrées individuelles, ce qui a cassé le cycle de vie pour les scènes avec plusieurs écrans. Ce problème a été corrigé pour la prochaine version. (b/440145700)

Version 1.0.0-alpha07

13 août 2025

Publication d'androidx.navigation3:navigation3-*:1.0.0-alpha07. La version 1.0.0-alpha07 contient ces commits.

Mise à jour de MinSdk

Modifications apportées à l'API

  • SavedStateNavEntryDecorator utilise désormais SaveableStateRegistry intégré à SaveableStateProvider pour enregistrer et restaurer les états. (If8d9a)
  • Le predictivePopTransitionSpec fournit désormais le bord de balayage en tant que paramètre, ce qui vous permet de personnaliser la transition en fonction du bord à partir duquel l'utilisateur a commencé le geste de prévisualisation du Retour. (I753a8)

Correction de bugs

  • Correction d'un problème qui entraînait le recalcul infini des scènes personnalisées, car la scène la plus récente n'était pas mémorisée. (I7ba84, b/418153031)

Mise à jour de la dépendance

Version 1.0.0-alpha06

30 juillet 2025

Publication d'androidx.navigation3:navigation3-*:1.0.0-alpha06. La version 1.0.0-alpha06 contient ces commits.

Mise à jour de la dépendance

Version 1.0.0-alpha05

2 juillet 2025

Publication d'androidx.navigation3:navigation3-*:1.0.0-alpha05. La version 1.0.0-alpha05 contient ces commits.

Nouveaux comportements

  • L'état de NavEntry est désormais strictement basé sur la liste actuelle des décorateurs transmis à NavDisplay. Cela signifie que les décorateurs doivent être échangés le long de vos piles "Retour" dans le cas de plusieurs piles "Retour" afin de préserver l'état des NavEntries sur la pile "Retour". Sinon, les états seront effacés comme si les entrées avaient été supprimées (au lieu d'être inversées). (I7a759, b/428033667)

Version 1.0.0-alpha04

18 juin 2025

Publication d'androidx.navigation3:navigation3-*:1.0.0-alpha04. La version 1.0.0-alpha04 contient ces commits.

Modifications apportées à l'API

  • NavEntry.content est désormais privée. Pour appeler le contenu NavEntry, appelez la nouvelle API NavEntry.Content(), qui ne nécessite plus de paramètre key. (Icd0fd, b/420991203)
  • NavEntry.key est désormais un champ privé. NavEntry et ses états associés doivent être identifiés par le nouveau champ contentKey, qui est généré à partir du nouveau lambda contentKeyFactory et qui est défini par défaut sur un hachage enregistrable généré à partir de NavEntry.key. (I81a6c, b/422001357, b/420991203 I2d7d4, b/420991203, b/422841812)

Modifications de la dépendance

  • Navigation3 dépend désormais du nouvel artefact androidx.navigationevent.compose.

Version 1.0.0-alpha03

4 juin 2025

Publication d'androidx.navigation3:navigation3-*:1.0.0-alpha03. La version 1.0.0-alpha03 contient ces commits.

Correction de bugs

  • Navigation3 n'effacera plus les états de décorateur pour les backStacks qui ont été remplacés par une autre instance backStack. (I28a42, b/415076044)

Version 1.0.0-alpha02

23 mai 2025

Publication d'androidx.navigation3:navigation3-*:1.0.0-alpha02. La version 1.0.0-alpha02 contient ces commits.

Correction de bugs

  • Correction d'un problème lié à SavedStateNavEntryDecorator qui entraînait des collisions pour différentes classes de données avec les mêmes valeurs de propriété. (b/418070648, Iff4775)
  • Correction d'un problème de classe manquante qui entraînait des plantages lors de l'exécution sans déclaration de dépendances explicites. (b/419049149, I4b4ed)

Version 1.0.0-alpha01

20 mai 2025

Publication d'androidx.navigation3:navigation3-*:1.0.0-alpha01. La version 1.0.0-alpha01 contient ces commits.

Nouvelles fonctionnalités

Navigation3 est une nouvelle bibliothèque de navigation conçue spécifiquement pour gérer la navigation dans les applications Jetpack Compose. L'artefact androidx.navigation3.runtime fournit les blocs de construction, tandis que l'artefact androidx.navigation3.ui fournit la couche UI via l'API NavDisplay. Les développeurs peuvent fournir leur propre état directement à la fonction composable NavDisplay, qui modifie le contenu en fonction des changements d'état du développeur.

@Serialiable object Home : NavKey
@Serialiable object Chat : NavKey

val backStack = rememberNavBackStack(Home)

NavDisplay(backStack, entryProvider = entryProvider {
  entry<Home> {
    Column {
      Text(Home)
      Button(onClick = { backStack.add(Chat) } ) {
        Text(Go to Chat)
      } 
    }
  }
  entry<Chat> { /* My Composable Content */ }
})

Pour en savoir plus, consultez le guide Navigation3.