添加对新的目的地类型的支持

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

其他资源

如需详细了解 Navigation,请参阅下面列出的其他资源。

示例

Codelab

视频