Тип NavController
использует один или несколько объектов Navigator
для выполнения операции навигации. По умолчанию NavController
поддерживает выход из графа навигации путем перехода к другому действию с помощью класса ActivityNavigator
и его вложенного класса ActivityNavigator.Destination
.
Чтобы перейти к любому другому типу пункта назначения, в NavController
необходимо добавить один или несколько дополнительных объектов Navigator
. Например, при использовании фрагментов в качестве мест назначения NavHostFragment
автоматически добавляет класс FragmentNavigator
в свой NavController
.
Чтобы добавить новый объект Navigator
в NavController
, используйте метод getNavigatorProvider()
, за которым следует метод addNavigator()
.
В следующем коде показан пример добавления объекта CustomNavigator
к NavController
:
Котлин
val customNavigator = CustomNavigator() navController.navigatorProvider += customNavigator
Ява
CustomNavigator customNavigator = new CustomNavigator(); navController.getNavigatorProvider().addNavigator(customNavigator);
Большинство классов Navigator
имеют вложенный подкласс назначения. Этот подкласс можно использовать для указания дополнительных атрибутов, уникальных для вашего места назначения. Дополнительные сведения о подклассах назначения см. в справочной документации соответствующего класса Navigator
.
Дополнительные ресурсы
Дополнительные сведения о навигации см. в следующих дополнительных ресурсах.