欢迎参加我们将于 6 月 3 日举行的 #Android11:Beta 版发布会

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

NavControllers 依靠一个或多个 Navigator 对象执行导航操作。默认情况下,所有 NavControllers 都支持通过使用 ActivityNavigator 类及其嵌套的 ActivityNavigator.Destination 类导航到另一 Activity 离开导航图。为了能够导航到任何其他类型的目的地,必须向 NavController 添加一个或多个其他 Navigator 对象。例如,将 Fragment 用作目的地时,NavHostFragment 会自动将 FragmentNavigator 类添加到其 NavController 中。

要将新的 Navigator 对象添加到 NavController,您必须使用相应的 NavController 类的 getNavigatorProvider() 方法,然后使用该类的 addNavigator() 方法。以下代码展示了向 NavController 添加虚构的 CustomNavigator 对象的示例:

Kotlin

    val customNavigator = CustomNavigator()
    navController.navigatorProvider += customNavigator
    

Java

    CustomNavigator customNavigator = new CustomNavigator();
    navController.getNavigatorProvider().addNavigator(customNavigator);
    

大多数 Navigator 类具有嵌套的目的地子类。该子类可用于指定专属于您的目的地的其他属性。如需详细了解目的地子类,请参阅相应 Navigator 类的参考文档。

其他资源

要详细了解 Navigation,请参阅下面列出的其他资源:

示例

Codelab

视频