NavController
类型依赖于一个或多个 Navigator
对象来执行导航操作。默认情况下,NavController
支持使用 ActivityNavigator
类及其嵌套的 ActivityNavigator.Destination
类导航到另一个 Activity,从而离开导航图。
要导航到任何其他类型的目标,必须向 NavController
添加一个或多个额外的 Navigator
对象。例如,当使用 Fragment 作为目标时,NavHostFragment
会自动将其 FragmentNavigator
类添加到其 NavController
中。
要向 NavController
添加新的 Navigator
对象,请使用 getNavigatorProvider()
方法,然后使用 addNavigator()
方法。
以下代码展示了如何向 NavController
添加 CustomNavigator
对象的示例。
Kotlin
val customNavigator = CustomNavigator() navController.navigatorProvider += customNavigator
Java
CustomNavigator customNavigator = new CustomNavigator(); navController.getNavigatorProvider().addNavigator(customNavigator);
大多数 Navigator
类都有一个嵌套的目标子类。此子类可用于指定目标独有的额外属性。如需详细了解目标子类,请参阅相应 Navigator
类的参考文档。
其他资源
如需详细了解导航,请参阅以下其他资源。