Azioni globali

Puoi utilizzare un'azione globale per creare un'azione comune che può essere utilizzata da più destinazioni. Ad esempio, potresti volere che pulsanti in destinazioni diverse rimandino alla stessa schermata principale dell'app.

Un'azione globale è rappresentata nell'editor di navigazione da una piccola freccia che punta alla destinazione associata, come mostrato nella figura 1.

Figura 1. Un'azione globale che porta a un grafico nidificato.

Crea un'azione globale

Per creare un'azione globale:

  1. Nell'Editor grafici, fai clic su una destinazione per evidenziarla.
  2. Fai clic con il tasto destro del mouse sulla destinazione per visualizzare il menu contestuale.
  3. Seleziona Aggiungi azione > Globale. A sinistra della destinazione viene visualizzata una freccia ().
  4. Fai clic sulla scheda Testo per passare alla visualizzazione del testo XML. Il codice XML per l'azione globale è simile al seguente:

    <?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>
    

Usa un'azione globale

Per utilizzare un'azione globale nel codice, passa l'ID risorsa dell'azione globale al metodo navigate() per ogni elemento dell'interfaccia utente, come mostrato nell'esempio seguente:

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);
   }
});

Usa Safe Args in un'azione globale

Per informazioni sull'utilizzo di Args sicuri con le azioni globali, consulta Trasmettere dati tra destinazioni.

Risorse aggiuntive

Per scoprire di più sulla navigazione, consulta le seguenti risorse aggiuntive.

Samples

Codelab

Video