La navigation désigne les interactions qui permettent aux utilisateurs de parcourir les différents éléments de contenu de votre application de différentes manières.
Qu'il s'agisse de configurer de simples clics sur des boutons ou des modèles plus complexes, tels que l'ajout de barres d'application et d'un panneau de navigation, le composant Navigation d'Android Jetpack vous aide à implémenter la navigation.
Il assure également une expérience utilisateur cohérente et prévisible grâce au respect d'un ensemble de principes établi.
Éléments clés de la navigation
Le composant Navigation comprend trois éléments clés décrits ci-dessous :
- Graphe de navigation : ressource XML qui centralise toutes les informations liées à la navigation. Cela inclut toutes les zones de contenu de l'application, appelées destinations, ainsi que les chemins possibles qu'un utilisateur peut emprunter dans celle-ci.
NavHost
: conteneur vide qui affiche les destinations à partir du graphe de navigation. Le composant Navigation contient une implémentationNavHost
par défaut,NavHostFragment
, qui affiche les destinations de fragment.NavController
: objet qui gère la navigation dans l'application dans unNavHost
NavController
orchestre le changement du contenu de destination dansNavHost
à mesure que les utilisateurs se déplacent dans l'application.
Lorsque vous parcourez votre application, vous indiquez à NavController
que vous souhaitez parcourir un chemin spécifique du graphe de navigation ou accéder directement à une destination spécifique. NavController
affiche ensuite la destination appropriée dans NavHost
.
Le composant Navigation offre de nombreux autres avantages, y compris les suivants :
- Gestion des transactions de fragment
- Gestion correcte des fonctions vers le haut et en arrière par défaut
- Mise à disposition de ressources standardisées pour les animations et les transitions
- Implémentation et gestion des liens profonds
- Inclusion des modèles d'interface utilisateur de navigation, tels que les panneaux de navigation et la barre de navigation inférieure, avec des efforts supplémentaires réduits
- Inclusion de Safe Args, plug-in Gradle offrant la sûreté du typage de données lors de la navigation et de la transmission des données entre les destinations
- Prise en charge de
ViewModel
: vous pouvez associer unViewModel
à un graphe de navigation pour partager les données liées à l'interface utilisateur entre les destinations du graphe
Vous pouvez également utiliser l'éditeur de navigation d'Android Studio pour afficher et modifier vos graphes de navigation.
Navigation est compatible avec la dernière version stable d'Android Studio.
Étapes suivantes
Pour plus de documentation et de ressources liées au composant Navigation, consultez les pages suivantes.
Se lancer
Autres sujets
- Principes de navigation
- Concevoir une solution adaptée à différents facteurs de forme
- Assurer la compatibilité avec la navigation par gestes
- Concevoir des graphiques de navigation
- Graphiques de navigation imbriqués
- Actions générales
- Navigation conditionnelle
- Transmettre des données entre les destinations
- Créer un lien profond pour une destination
- Animer des transitions entre les destinations
- Mettre à jour les composants de l'UI avec NavigationUI
- Créer des vues à balayer avec des onglets à l'aide de ViewPager
- Interagir de façon programmatique avec le composant Navigation
- Tester la navigation
- Ajouter de nouveaux types de destinations
- Fournir un retour arrière personnalisé
- Effectuer une migration vers le composant Navigation
Exemples
Ateliers de programmation
- Découvrir la navigation dans Jetpack
- Les fragments et le composant Navigation
- Créer une application adaptative avec la navigation dynamique
Vidéos
- Découvrir Navigation
- 10 bonnes pratiques pour passer à une activité unique
- Activité unique : pourquoi, quand et comment (Sommet des développeurs Android 2018)
- Android Jetpack : gérer la navigation dans l'interface utilisateur avec le contrôleur de navigation (Google I/O 2018)