Der Navigationscontroller ist eines der wichtigen Konzepte der Navigation. Es enthält die Navigationsgrafik und stellt Methoden bereit, mit denen sich Ihre App bewegen kann zwischen den Zielen in der Grafik.
Wenn Sie die Navigationskomponente verwenden, erstellen Sie einen Navigations-Controller.
mit der Klasse NavController. NavController ist die zentrale
Navigations-API verwenden. Er erfasst, welche Ziele der Nutzer besucht hat, und ermöglicht
zwischen Zielen hin und her wechseln. In diesem Leitfaden wird gezeigt, wie Sie ein
NavController in deiner App.
Informationen zum Hinzufügen eines Navigationsdiagramms zu NavController findest du unter
Entwerfen Sie das Navigationsdiagramm. NavController bietet verschiedene Möglichkeiten
um zu den Zielen in der Grafik zu navigieren. Weitere Informationen finden Sie unter Zu einem
Ziel.
Schreiben
Um bei der Verwendung von Jetpack Compose eine NavController zu erstellen, rufen Sie
rememberNavController():
val navController = rememberNavController()
Erstellen Sie die NavController weiter oben in Ihrer zusammensetzbaren Hierarchie. Es
muss hoch genug sein, damit alle zusammensetzbaren Funktionen, die darauf verweisen müssen,
tun Sie dies.
Auf diese Weise können Sie die NavController als zentrale Informationsquelle für
wenn Sie die zusammensetzbaren Funktionen
außerhalb Ihrer Bildschirme aktualisieren. Dies entspricht den Prinzipien
Zustandswinden.
Aufrufe
Wenn Sie das Views-UI-Framework verwenden, können Sie Ihren NavController abrufen. Verwenden Sie dazu je nach Kontext eine der folgenden Methoden:
Kotlin:
Java:
NavHostFragment.findNavController(Fragment)Navigation.findNavController(Activity, @IdRes int viewId)Navigation.findNavController(View)
Üblicherweise erhalten Sie zuerst einen NavHostFragment und rufen dann den
NavController aus dem Fragment. 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
- Navigationsdiagramm entwerfen:Eine Anleitung, die beschreibt, wie Sie eine Grafik hinzufügen.
zu Ihrer
NavController, die alle Ziele in Ihrer App enthält. - Zu einem Ziel navigieren:Eine Anleitung zur Verwendung des
NavController, um zwischen Zielen in der Navigationsgrafik zu wechseln.