Unterstützung für neue Zieltypen hinzufügen

Der Typ NavController benötigt ein oder mehrere Navigator-Objekte, um den Navigationsvorgang auszuführen. Standardmäßig unterstützt NavController das Verlassen des Navigationsdiagramms, indem es mit der Klasse ActivityNavigator und der verschachtelten Klasse ActivityNavigator.Destination zu einer anderen Aktivität navigiert.

Wenn Sie zu einem anderen Zieltyp navigieren möchten, müssen Sie dem NavController ein oder mehrere zusätzliche Navigator-Objekte hinzufügen. Wenn Sie beispielsweise Fragmente als Ziele verwenden, wird die Klasse FragmentNavigator von NavHostFragment automatisch zu NavController hinzugefügt.

Wenn Sie einem NavController ein neues Navigator-Objekt hinzufügen möchten, verwenden Sie die Methode getNavigatorProvider() gefolgt von der Methode addNavigator().

Der folgende Code zeigt ein Beispiel für das Hinzufügen eines CustomNavigator-Objekts zu einem NavController:

Kotlin

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

Java

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

Die meisten Navigator-Klassen haben eine verschachtelte abgeleitete Zielklasse. Mit dieser abgeleiteten Klasse können Sie zusätzliche Attribute angeben, die für Ihr Ziel eindeutig sind. Weitere Informationen zu abgeleiteten Zielen finden Sie in der Referenzdokumentation zur entsprechenden Navigator-Klasse.

Weitere Informationen

Weitere Informationen zur Navigation finden Sie in den folgenden Ressourcen.

Produktproben

Codelabs

Videos