Acciones generales

Puedes usar una acción general para crear una acción común que varios destinos puedan utilizar. Por ejemplo, quizás desees agregar botones en distintos destinos para navegar a la misma pantalla principal de la app.

En el Editor de Navigation, una acción general se representa mediante una flecha pequeña que apunta al destino asociado, como se muestra en la figura 1.

Figura 1: Una acción general que conduce a un gráfico anidado

Cómo crear una acción general

Para crear una acción general, haz lo siguiente:

  1. En el Graph Editor, haz clic en un destino para destacarlo.
  2. Haz clic con el botón derecho en el destino para mostrar el menú contextual.
  3. Selecciona Add action > Global. Se muestra una flecha () a la izquierda del destino.
  4. Haz clic en la pestaña Text para navegar a la vista de texto XML. El XML de la acción general es similar al siguiente:

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

Cómo usar una acción general

A fin de usar una acción general en tu código, pasa el ID de recurso de la acción general al método navigate() para cada elemento de IU, como se muestra en el siguiente ejemplo:

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

Cómo usar Safe Args con una acción global

Si deseas obtener información para usar Safe Args con acciones generales, consulta Cómo pasar datos entre destinos.

Recursos adicionales

Para obtener más información acerca de la navegación, consulta los siguientes recursos adicionales.

Ejemplos

Codelabs

Videos