Vous pouvez utiliser une action globale pour créer une action commune que plusieurs destinations peuvent utiliser. Imaginons que vous souhaitiez que les boutons de différentes destinations renvoient vers le même écran d'application principal.
Une action globale est représentée dans l'éditeur de navigation par une petite flèche pointant vers la destination associée, comme illustré dans la figure 1.
Créer une action globale
Pour créer une action globale, procédez comme suit :
- Dans l'éditeur de graphique, cliquez sur une destination pour la sélectionner.
- Effectuez un clic droit pour afficher le menu contextuel.
- Sélectionnez Add Action > Global (Ajouter une action > Générale). Une flèche () apparaît à gauche de la destination.
Cliquez sur l'onglet Text (Texte) pour accéder à la vue XML. Le code XML de l'action globale se présente comme suit :
<?xml version="1.0" encoding="utf-8"?> <navigation xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main_nav" app:startDestination="@id/mainFragment"> ... <action android:id="@+id/action_global_mainFragment" app:destination="@id/mainFragment"/> </navigation>
Utiliser une action globale
Pour utiliser une action globale dans votre code, transmettez son ID de ressource à la méthode navigate()
pour chaque élément d'interface utilisateur, comme illustré dans l'exemple suivant :
Kotlin
viewTransactionButton.setOnClickListener { view -> view.findNavController().navigate(R.id.action_global_mainFragment) }
Java
viewTransactionsButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Navigation.findNavController(view).navigate(R.id.action_global_mainFragment); } });
Utiliser Safe Args avec une action globale
Pour en savoir plus sur l'utilisation de Safe Args avec des actions générales, consultez la section Transmettre des données entre les destinations.
Ressources supplémentaires
Pour en savoir plus sur la navigation, consultez les ressources supplémentaires suivantes.