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 graphie, cliquez sur une destination pour la sélectionner.
- Effectuez un clic droit pour afficher le menu contextuel.
- Sélectionnez Ajouter une action > Globale. Une flèche (
) apparaît à gauche de la destination.
Cliquez sur l'onglet 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 globales, consultez la section Transmettre des données entre des destinations.
Ressources supplémentaires
Pour en savoir plus sur la navigation, consultez les ressources supplémentaires suivantes.