Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Navigation Android avec Jetpack Compose et NavHost
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Navigation Android avec Jetpack Compose et NavHost

L'Équipe Alphorm Par L'Équipe Alphorm 18 janvier 2025
Partager
Partager

La navigation dans les applications Android traditionnelles peut être complexe et peu flexible.

Cette complexité entraîne souvent des interfaces maladroites et difficiles à maintenir, frustrant les développeurs et les utilisateurs.

Jetpack Compose, avec NavHost et NavController, simplifie la navigation, rendant le développement plus modulable et fluide.

Table de matière
Introduction à Jetpack Compose NavigationNavHost et NavController en Navigation ComposeConfigurer Navigation Compose sur AndroidImplémenter NavHost pour Navigation AndroidNavigation Compose : Pratiques EssentiellesExemple Complet de Navigation Jetpack ComposeConclusion sur Navigation Jetpack ComposeConclusionFAQConclusion

Formation Créer une Interface Utilisateur Moderne avec JetPack Compose

Créez des interfaces modernes et réactives avec JetPack Compose!

Découvrir cette formation

Introduction à Jetpack Compose Navigation

NavHost et NavController en Navigation Compose

Dans cette section, nous allons explorer la navigation dans les applications Android en utilisant Jetpack Compose et NavHost. Avec Compose, la gestion de la navigation devient plus flexible et modulable grâce à une bibliothèque spécifique qui vous permet de créer des interfaces utilisateur entièrement en code Kotlin, sans passer par les fichiers XML traditionnels.

Configurer Navigation Compose sur Android

NavHost est un composant qui contient un graphique de navigation au sein de votre application. Il contrôle la navigation entre les différentes destinations (écrans) et assure que les bonnes destinations sont affichées en réponse aux actions de navigation.

Question : Qu’est-ce que NavHost?

NavController est une classe qui gère l’interaction entre les destinations dans votre graphique de navigation. Il vous permet de déclencher la navigation, de gérer la pile de navigation et de passer des données entre les écrans.

Question : Qu’est-ce que NavController?

Implémenter NavHost pour Navigation Android

Ajouter la dépendance

Pour utiliser NavHost et NavController avec Jetpack Compose, vous devez d’abord ajouter la bibliothèque navigation-compose dans votre fichier build.gradle. Ajoutez la dépendance suivante dans la section dependencies de votre module:

				
					
 dependencies {
implementation "androidx.navigation:navigation-compose:2.6.0-alpha04"
}

				
			

Après avoir ajouté la dépendance, assurez-vous de synchroniser votre projet avec Gradle en utilisant l’option « Sync Now » proposée par Android Studio.

Diagramme de navigation Jetpack Compose

Navigation Compose : Pratiques Essentielles

Création d’un NavController

Dans votre activité principale (MainActivity), créez un NavController en utilisant la fonction rememberNavController(). Ce contrôleur gère la navigation entre vos composables:

				
					
 val navController = rememberNavController()

				
			

Définition de NavGraph

Ensuite, définissez un graphique de navigation (NavGraph) en spécifiant les routes (écrans) que votre application va gérer. Chaque route correspond à un composable particulier:

				
					
 NavHost(navController = navController, startDestination = "home") {
composable("home") { HomeScreen(navController) }
composable("login") { LoginScreen(navController) }
}

				
			

Dans cet exemple, la navigation commence à l’écran « home ». Si l’utilisateur navigue vers « login », l’écran de connexion sera affiché.

Diagramme de la navigation dans Jetpack Compose

Gestion des Routes avec Paramètres

Vous pouvez également passer des paramètres entre les écrans. Utilisez une syntaxe à base d’accolades pour spécifier des paramètres dans vos routes:

				
					
 composable("details/{itemId}") { backStackEntry ->
val itemId = backStackEntry.arguments?.getString("itemId")
DetailsScreen(navController, itemId)}

				
			

Le code retourne le résultat suivant :

Écran de détails avec ID dans Jetpack Compose

Ici, la route « details » prend un itemId comme paramètre, qui est ensuite utilisé dans DetailsScreen.

Exemple Complet de Navigation Jetpack Compose

Naviguer vers une Route

Pour naviguer vers une route particulière, utilisez la fonction navigate() sur votre NavController:

Diagramme de navigation Jetpack Compose
				
					
 navController.navigate("login")

				
			

Gérer la Pile de Navigation

Pour gérer la pile de navigation, vous pouvez utiliser des méthodes comme popBackStack() pour revenir en arrière dans la pile:

				
					
 navController.popBackStack()

				
			

Cela revient à l’écran précédent tout en supprimant l’écran actuel de la pile.

Conclusion sur Navigation Jetpack Compose

Voici un exemple complet illustrant l’implémentation de la navigation dans une application Compose:

Question : Comment pouvez-vous utiliser NavController pour naviguer entre différents écrans dans Jetpack Compose, et comment pouvez-vous passer des paramètres (comme itemId) entre les écrans ?
				
					
 @Composable
fun MainScreen() {
val navController = rememberNavController()
Scaffold {
NavHost(navController = navController, startDestination = "home") {
composable("home") { HomeScreen(navController) }
composable("login") { LoginScreen(navController) }
composable("details/{itemId}") { backStackEntry ->
val itemId = backStackEntry.arguments?.getString("itemId")
DetailsScreen(navController, itemId)
}        }    }}
@Composable
fun HomeScreen(navController: NavController) {
Button(onClick = { navController.navigate("login") }) {
Text("Go to Login")    }}
@Composable
fun LoginScreen(navController: NavController) {
Button(onClick = { navController.navigate("details/123") }) {
Text("Go to Details")    }}
@Composable
fun DetailsScreen(navController: NavController, itemId: String?) {
Text(text = "Item ID: $itemId")
Button(onClick = { navController.popBackStack() }) {
Text("Back")
}
}

				
			

Le code retourne le résultat suivant :

Deux boutons Go to Login et Go to Details
Élément
Description
MainScreen
Configure le NavHost avec navController pour gérer la navigation entre les écrans.
HomeScreen
Affiche un bouton pour naviguer vers l’écran de connexion (« login »).
LoginScreen
Affiche un bouton pour naviguer vers l’écran des détails avec un ID d’article (« details/123 »).
DetailsScreen
Affiche l’ID de l’article passé en argument et un bouton pour revenir à l’écran précédent.
navController
Contrôleur de navigation utilisé pour gérer la navigation entre les différents écrans.
Scaffold
Fournit une structure de base pour l’application avec un NavHost pour la gestion de la navigation.

Conclusion

Dans cet E-book, nous avons exploré comment configurer et utiliser NavHost et NavController pour la navigation dans une application Android construite avec Jetpack Compose.

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Qu'est-ce que NavHost dans Jetpack Compose?
NavHost est un composant essentiel pour la navigation dans les applications Android utilisant Jetpack Compose. Il contient le graphique de navigation, permettant de gérer la transition entre différents écrans ou destinations. En définissant NavHost, vous pouvez spécifier les routes de votre application, assurant que les écrans appropriés s’affichent en réponse aux actions utilisateurs. Cela permet une gestion fluide et efficace des interfaces utilisateur dans une application modulaire.
Comment fonctionne NavController dans Compose?
NavController dans Jetpack Compose est une classe clé qui facilite la navigation entre les destinations définies dans votre graphique de navigation. Il permet aux développeurs de déclencher des actions de navigation, de gérer la pile de navigation et de transmettre des données entre les différents écrans. Utiliser NavController rend la gestion de la navigation dans une application plus intuitive et harmonieuse, améliorant ainsi l’expérience utilisateur globale.
Comment configurer la bibliothèque de navigation dans Jetpack Compose?
Pour configurer la bibliothèque de navigation dans une application Jetpack Compose, commencez par ajouter la dépendance ‘navigation-compose’ dans votre fichier build.gradle. Ensuite, synchronisez votre projet avec Gradle. Cette configuration permet l’utilisation de composants comme NavHost et NavController, essentiels pour la gestion de la navigation entre les écrans dans une application Android. Cela offre une structure solide pour créer des interfaces utilisateur dynamiques et réactives.
Comment implémenter la navigation avec NavHost?
Pour implémenter la navigation avec NavHost dans Jetpack Compose, créez d’abord un NavController avec la fonction rememberNavController(). Définissez ensuite un NavGraph en indiquant les routes ou écrans que votre application va gérer. Chaque route doit être associée à un composable spécifique. Cela vous permet de contrôler la navigation entre différents écrans, en assurant une transition fluide et cohérente pour l’utilisateur.
Comment passer des paramètres entre les écrans avec NavController?
NavController permet de passer des paramètres entre les écrans en utilisant une syntaxe avec des accolades pour les routes. Par exemple, une route ‘details/{itemId}’ peut recevoir un itemId en tant que paramètre. Dans l’écran ‘DetailsScreen’, vous récupérez ce paramètre depuis l’objet backStackEntry. Cette flexibilité permet de transmettre des données spécifiques entre les écrans, enrichissant l’interaction utilisateur et personnalisant l’expérience de navigation.

Conclusion

En maîtrisant NavHost et NavController, vous pouvez créer des applications Android avec une navigation fluide et efficace. Quelles autres fonctionnalités de Jetpack Compose aimeriez-vous explorer pour enrichir vos applications?

ÉTIQUETÉ : Android, Jetpack
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Navigation Android avec Jetpack Compose et NavHost

© Alphorm - Tous droits réservés