Adicionar suporte para novos tipos de destino

O tipo NavController depende de um ou mais objetos Navigator para realizar a operação de navegação. Por padrão, o NavController oferece suporte à saída do gráfico de navegação ao navegar para outra atividade usando a classe ActivityNavigator e a classe aninhada ActivityNavigator.Destination.

Se quiser navegar para qualquer outro tipo de destino, um ou mais objetos Navigator extras precisarão 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, use o método getNavigatorProvider(), seguido pelo addNavigator().

O código a seguir mostra um exemplo de como adicionar um objeto CustomNavigator 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 extras exclusivos para seu destino. Para saber mais sobre subclasses de destino, consulte a documentação de referência da classe Navigator adequada.

Outros recursos

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

Codelabs

Vídeos