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.
Cómo crear una acción general
Para crear una acción general, haz lo siguiente:
- En el Graph Editor, haz clic en un destino para destacarlo.
- Haz clic con el botón derecho en el destino para mostrar el menú contextual.
- Selecciona Add action > Global. Se muestra una flecha () a la izquierda del destino.
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.