Aggiungi il supporto per i nuovi tipi di destinazione

Il tipo NavController si basa su uno o più oggetti Navigator per eseguire l'operazione di navigazione. Per impostazione predefinita, NavController consente di uscire dal grafico di navigazione passando a un'altra attività utilizzando la classe ActivityNavigator e la relativa classe ActivityNavigator.Destination nidificata.

Per passare a qualsiasi altro tipo di destinazione, è necessario aggiungere uno o più oggetti Navigator al NavController. Ad esempio, quando utilizzi i frammenti come destinazioni, il NavHostFragment aggiunge automaticamente la classe FragmentNavigator al proprio NavController.

Per aggiungere un nuovo oggetto Navigator a un NavController, utilizza il metodo getNavigatorProvider(), seguito dal metodo addNavigator().

Il seguente codice mostra un esempio di aggiunta di un oggetto CustomNavigator a un NavController:

Kotlin

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

Java

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

La maggior parte delle classi Navigator ha un sottotipo di destinazione nidificato. Questa sottoclasse può essere utilizzata per specificare attributi aggiuntivi specifici per la tua destinazione. Per ulteriori informazioni sulle sottoclassi di destinazione, consulta la documentazione di riferimento per la classe Navigator appropriata.

Risorse aggiuntive

Per scoprire di più sulla navigazione, consulta le seguenti risorse aggiuntive.

Codelab

Video