Android Jetpack 中的导航组件为 Jetpack Compose 应用程序提供支持。您可以利用导航组件的基础结构和功能在可组合项之间导航。
此页面描述了 Wear OS 上 Compose 的 Jetpack 导航的不同之处。
设置
在应用模块的 build.gradle 文件中使用以下依赖项
Kotlin
dependencies { def wear_compose_version = "1.4.0" implementation "androidx.wear.compose:compose-navigation:$wear_compose_version" }
它代替androidx.navigation:navigation-compose
工件使用,因为它提供了特定于 Wear OS 的替代实现。
创建导航控制器、主机和图
使用 Compose 为 Wear OS 导航需要与非 Wear OS 应用相同的三个组件:导航控制器、主机和图。
使用rememberSwipeDismissableNavController()
创建WearNavigator
的实例,它是NavController
的实现,适用于 Wear OS 应用程序
Kotlin
val navController = rememberSwipeDismissableNavController()
在 Compose 应用程序中导航使用NavController
作为主要 API。它控制在导航主机中的可组合项之间导航,在 Wear OS 上,导航主机为SwipeDismissableNavHost
。
Kotlin
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "message_list" ) { // TODO: build navigation graph }
与NavHost
可组合项类似,它接受对导航控制器的引用、起始目的地的路由以及导航图的构建器,此处显示为尾随 lambda。
起始目的地必须在导航图构建器中提供,以及所有其他应使用导航控制器可导航的目的地。
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "message_list" ) { composable("message_list") { MessageList(onMessageClick = { id -> navController.navigate("message_detail/$id") }) } composable("message_detail/{id}") { MessageDetail(id = it.arguments?.getString("id")!!) } }
要详细了解 Jetpack 导航,请参阅使用 Compose 导航或参加Jetpack Compose 导航代码实验室。
为您推荐
- 注意:当 JavaScript 关闭时显示链接文本
- 将 Jetpack 导航迁移到 Navigation Compose
- 使用 Compose 进行导航
- 使用 Compose 在屏幕之间导航