Typ NavController opiera się na co najmniej 1 obiekcie Navigator, aby wykonać operację nawigacji. Domyślnie NavController obsługuje opuszczanie grafu nawigacyjnego przez przejście do innej aktywności za pomocą klasy ActivityNavigator i jej zagnieżdżonej klasy ActivityNavigator.Destination.
Aby przejść do dowolnego innego typu miejsca docelowego, do NavController należy dodać co najmniej 1 dodatkowy obiekt Navigator. Jeśli na przykład używasz fragmentów jako miejsc docelowych, funkcja NavHostFragment automatycznie dodaje klasę FragmentNavigator do elementu NavController.
Aby dodać nowy obiekt Navigator do NavController, użyj metody getNavigatorProvider(), a następnie metody addNavigator().
Poniższy kod pokazuje przykład dodawania obiektu CustomNavigator do obiektu NavController:
Kotlin
val customNavigator = CustomNavigator() navController.navigatorProvider += customNavigator
Java
CustomNavigator customNavigator = new CustomNavigator(); navController.getNavigatorProvider().addNavigator(customNavigator);
Większość klas Navigator ma zagnieżdżoną podklasę miejsca docelowego. Ta podklasa może służyć do określania dodatkowych atrybutów, które są unikalne dla Twojego miejsca docelowego. Więcej informacji o podklasach docelowych znajdziesz w dokumentacji odpowiedniej klasy Navigator.
Dodatkowe materiały
Więcej informacji o nawigacji znajdziesz w tych dodatkowych materiałach.