Únete a ⁠ #Android11: The Beta Launch Show el 3 de junio.

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

Para 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 general

Si deseas obtener información sobre cómo usar Safe Args con las 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.

Muestras

Codelabs

Videos