Ações globais

Você pode usar uma ação global para criar uma ação comum que vários destinos podem usar. Por exemplo, convém ter botões em destinos diferentes que naveguem para a mesma tela principal do app.

Uma ação global é representada no Navigation Editor por uma pequena seta que aponta para o destino associado, como mostrado na Figura 1.

Figura 1. Uma ação global que leva a um gráfico aninhado.

Criar uma ação global

Para criar uma ação global, faça o seguinte:

  1. No Graph Editor, clique em um destino para destacá-lo.
  2. Clique com o botão direito do mouse no destino para exibir o menu de contexto.
  3. Selecione Add Action > Global. Uma seta () aparece à esquerda do destino.
  4. Clique na guia Text para navegar até a visualização de texto XML. O XML da ação global é semelhante ao seguinte:

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

Usar uma ação global

Para usar uma ação global no seu código, transmita o ID do recurso da ação global ao método navigate() para cada elemento da interface, como mostrado no exemplo a seguir.

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

Usar o Safe Args com uma ação global

Para ver informações sobre o uso de Safe Args com ações globais, consulte Transmitir dados entre destinos.

Outros recursos

Para saber mais sobre navegação, consulte os recursos adicionais a seguir.

Codelabs

Vídeos