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

Adicionar suporte para novos tipos de destino

NavControllers usa um ou mais objetos Navigator para realizar a operação de navegação. Por padrão, todos os NavControllers saem do gráfico de navegação navegando para outra atividade usando a classe ActivityNavigator e a classe aninhada ActivityNavigator.Destination. Para poder navegar para qualquer outro tipo de destino, um ou mais objetos Navigator adicionais precisam ser adicionados a NavController. Por exemplo, ao usar fragmentos como destinos, o NavHostFragment adiciona automaticamente a classe FragmentNavigator a NavController.

Para adicionar um novo objeto de navegação a um NavController, você precisa usar o método getNavigatorProvider() da respectiva classe NavController, seguido pelo método da classe addNavigator(). O código a seguir mostra um exemplo de como adicionar um objeto CustomNavigator fictício a um NavController.

Kotlin

    val customNavigator = CustomNavigator()
    navController.navigatorProvider += customNavigator
    

Java

    CustomNavigator customNavigator = new CustomNavigator();
    navController.getNavigatorProvider().addNavigator(customNavigator);
    

A maioria das classes Navigator tem uma subclasse de destino aninhada. Essa subclasse pode ser usada para especificar atributos adicionais exclusivos para seu destino. Para saber mais sobre subclasses de destino, consulte a documentação de referência da classe Navigator.

Outros recursos

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

Amostras

  • Exemplo básico de navegação dos componentes da arquitetura do Android (link em inglês)
  • Codelabs

  • Codelab de navegação (link em inglês)
  • Vídeos

  • Android Jetpack: gerenciar a navegação da IU com o "Navigation Controller" (Google I/O '18) (em inglês)