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