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 são compatíveis com a saída do gráfico de navegação ao navegar 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 extra precisam ser adicionados ao NavController. Por exemplo, ao usar fragmentos como destinos, o NavHostFragment adiciona automaticamente a classe FragmentNavigator ao NavController.

Para adicionar um novo objeto Navigator 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 adicionais a seguir.

Amostras

Codelabs

Vídeos