添加对新目标类型的支持

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 类的参考文档。

其他资源

要了解有关导航的更多信息,请参阅以下其他资源。

示例

Codelabs

视频