Android NDK开发详解Wear之使用 Compose for Wear OS 进行导航

Android NDK开发详解Wear之使用 Compose for Wear OS 进行导航


Android Jetpack 中的导航组件支持 Jetpack Compose 应用。您可以在利用导航组件的基础架构和功能的同时,在可组合项之间导航。

本页介绍了与 Compose for Wear OS 上的 Jetpack Navigation 之间的差异。

注意:如果您不熟悉导航组件,请先查看使用 Compose 进行导航资源,然后再继续。

设置

在应用模块的 build.gradle 文件中使用以下依赖项:

Kotlin

dependencies {
    def wear_compose_version = "1.2.1"
    implementation "androidx.wear.compose:compose-navigation:$wear_compose_version"
}

这用于替代 androidx.navigation:navigation-compose 工件,因为它提供了特定于 Wear OS 的替代实现。

创建导航控制器、导航主机和导航图

使用 Compose for Wear OS 进行导航需要的三个组件与非 Wear OS 应用相同:导航控制器、导航主机和导航图。

使用 rememberSwipeDismissableNavController() 创建一个 WearNavigator 实例,它是适用于 Wear OS 应用的 NavController 实现:

Kotlin

val navController = rememberSwipeDismissableNavController()

NavController 是用于在 Compose 应用中进行导航的主要 API。它用于控制导航主机(在 Wear OS 中为 SwipeDismissableNavHost)中的可组合项之间的导航。

Kotlin

val navController = rememberSwipeDismissableNavController()
SwipeDismissableNavHost(
    navController = navController,
    startDestination = "message_list"
) {
    // TODO: build navigation graph
}

与 NavHost 可组合项一样,它接受对导航控制器、起始目的地路线以及导航图构建器(此处显示为尾随 lambda)的引用。

必须在导航图构建器中提供起始目的地,以及应能够使用导航控制器进行导航的所有其他目的地。

Kotlin

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 Navigation,请参阅使用 Compose 进行导航或完成 Jetpack Compose Navigation Codelab。

本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。

最后更新时间 (UTC):2023-11-22。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五一编程

程序之路有我与你同行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值