Participe do evento ⁠#Android11: apresentação de lançamento da versão Beta no dia 3 de junho.

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, conforme 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 código do recurso da ação global ao método navigate() para cada elemento da IU, conforme 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 argumentos de segurança com ações globais, consulte Transmitir dados entre destinos.

Outros recursos

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

Amostras

Codelabs

Vídeos