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 supporta l'uscita dal grafico di navigazione passando a un'altra attività utilizzando la classe ActivityNavigator e la classe ActivityNavigator.Destination nidificata.

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

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

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

Kotlin

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

Java

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

La maggior parte delle classi Navigator ha una sottoclasse di destinazione nidificata. Questa sottoclasse può essere utilizzata per specificare attributi aggiuntivi univoci per la 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.

Samples

Codelab

Video