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:
NavHostFragment.findNavController(Fragment)
Navigation.findNavController(Activity, @IdRes int viewId)
Navigation.findNavController(View)
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.