Navigations-Controller erstellen

Der Navigations-Controller ist eines der wichtigsten Konzepte in der Navigation. Sie enthält das Navigationsdiagramm und stellt Methoden zur Verfügung, mit denen sich die Anwendung zwischen den Zielen im Diagramm bewegen kann.

Wenn Sie die Navigationskomponente verwenden, erstellen Sie mithilfe der Klasse NavController einen Navigationscontroller. NavController ist die zentrale Navigations-API. Sie verfolgt, welche Ziele der Nutzer besucht hat, und ermöglicht ihm, zwischen Zielen zu wechseln. In dieser Anleitung wird gezeigt, wie Sie eine NavController in Ihrer Anwendung erstellen.

Informationen zum Hinzufügen eines Navigationsdiagramms zu NavController finden Sie unter Navigationsdiagramm entwerfen. NavController bietet verschiedene Möglichkeiten, zu den Zielen im Diagramm zu navigieren. Weitere Informationen finden Sie unter Zu einem Ziel navigieren.

Schreiben

Rufen Sie rememberNavController() auf, um bei Verwendung von Jetpack Compose ein NavController zu erstellen:

val navController = rememberNavController()

Sie sollten NavController oben in Ihrer zusammensetzbaren Hierarchie erstellen. Sie muss hoch genug sein, damit alle zusammensetzbaren Funktionen, die darauf verweisen müssen, dies tun können.

So können Sie NavController als zentrale Datenquelle für die Aktualisierung von zusammensetzbaren Funktionen außerhalb Ihrer Bildschirme verwenden. Dies entspricht den Prinzipien des Zustandshebens.

Aufrufe

Wenn Sie das Views-UI-Framework verwenden, können Sie den NavController je nach Kontext mit einer der folgenden Methoden abrufen:

Kotlin:

Java:

In der Regel rufen Sie zuerst ein NavHostFragment ab und rufen dann NavController aus dem Fragment ab. Das folgende Snippet veranschaulicht dies:

Kotlin

val navHostFragment =
    supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController

Java

NavHostFragment navHostFragment =
    (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
NavController navController = navHostFragment.getNavController();

Weitere Informationen

  • Navigationsgrafik entwerfen:Eine Anleitung zum Hinzufügen eines Diagramms zu NavController, das alle Ziele in Ihrer App enthält.
  • Zu einem Ziel navigieren:Eine Anleitung, in der beschrieben wird, wie Sie mit NavController zwischen Zielen in der Navigationsgrafik wechseln.