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