Ajouter de nouveaux types de destinations

Le type NavController s'appuie sur un ou plusieurs objets Navigator pour effectuer l'opération de navigation. Par défaut, NavController permet de quitter le graphe de navigation en accédant à une autre activité à l'aide de la classe ActivityNavigator et de sa classe ActivityNavigator.Destination imbriquées.

Pour accéder à n'importe quel autre type de destination, un ou plusieurs objets Navigator supplémentaires doivent être ajoutées au NavController. Par exemple, lorsque vous utilisez des fragments comme destinations, NavHostFragment ajoute automatiquement la classe FragmentNavigator à son NavController.

Pour ajouter un objet Navigator à un NavController, utilisez la méthode getNavigatorProvider(), suivie de la méthode addNavigator().

Le code suivant montre un exemple d'ajout d'un objet CustomNavigator à un NavController :

Kotlin

val customNavigator = CustomNavigator()
navController.navigatorProvider += customNavigator

Java

CustomNavigator customNavigator = new CustomNavigator();
navController.getNavigatorProvider().addNavigator(customNavigator);

La plupart des classes Navigator ont une sous-classe de destination imbriquée. Cette sous-classe peut être utilisée pour spécifier des attributs supplémentaires propres à votre destination. Pour en savoir plus sur les sous-classes de destination, consultez la documentation de référence sur la classe Navigator appropriée.

Ressources supplémentaires

Pour en savoir plus sur la navigation, consultez les ressources supplémentaires suivantes.

Ateliers de programmation

Vidéos