Добавить поддержку новых типов мест назначения.

Тип 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 .

Дополнительные ресурсы

Дополнительные сведения о навигации см. в следующих дополнительных ресурсах.

Образцы

Кодлабы

Видео