Тип 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 .
Дополнительные ресурсы
Дополнительные сведения о навигации см. в следующих дополнительных ресурсах.