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.