Navigations-Controller erstellen

Der Navigationscontroller ist eines der wichtigsten Konzepte in der Navigation. Er enthält den Navigationsgraphen und stellt Methoden bereit, mit denen Ihre App zwischen den Zielen im Graphen wechseln kann.

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

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

Compose

Wenn Sie Jetpack Compose verwenden, rufen Sie rememberNavController() auf, um einen NavController zu erstellen:

val navController = rememberNavController()

Sie sollten den NavController weit oben in der zusammensetzbaren Hierarchie erstellen. Er muss hoch genug sein, damit alle zusammensetzbaren Elemente, die darauf verweisen müssen, dies tun können.

So können Sie den NavController als Single Source of Truth verwenden, um zusammensetzbare Elemente außerhalb Ihrer Bildschirme zu aktualisieren. Dies entspricht den Prinzipien des State Hoisting.

Aufrufe

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

Kotlin :

Java :

Normalerweise rufen Sie zuerst ein NavHostFragment ab und 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

  • Navigationsgraphen entwerfen: Eine Anleitung zum Hinzufügen eines Graphen zu Ihrem NavController, der alle Ziele in Ihrer App enthält.
  • Zu einem Ziel navigieren: Eine Anleitung zur Verwendung des NavController um zwischen Zielen in Ihrem Navigationsgraphen zu wechseln.