Добавьте поддержку новых типов целевых страниц

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

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

Чтобы узнать больше о навигации, ознакомьтесь со следующими дополнительными ресурсами.

Практические работы

Видео