Actions globales

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.

Figure 1. Action globale menant à un graphe imbriqué

Créer une action globale

Pour créer une action globale, procédez comme suit :

  1. Dans l'éditeur de graphie, cliquez sur une destination pour la sélectionner.
  2. Effectuez un clic droit pour afficher le menu contextuel.
  3. Sélectionnez Ajouter une action > Globale. Une flèche () apparaît à gauche de la destination.
  4. 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.

Exemples

Ateliers de programmation

Vidéos