添加对新目标类型的支持

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

其他资源

如需详细了解导航,请参阅以下其他资源。

Codelabs

视频