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.