Actions générales

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. A global action that leads to a nested graph.

Créer une action globale

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

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

Ateliers de programmation

Vidéos