
Compose for Wear OS 与适用于移动设备的 Compose 类似。但是,它们之间存在一些关键差异。本指南将引导您了解这些异同。
Compose for Wear OS 是 Android Jetpack 的一部分,与您使用的其他 Wear Jetpack 库一样,它可帮助您更快地编写更好的代码。这是我们为Wear OS 应用构建用户界面的推荐方法。
如果您不熟悉使用 Jetpack Compose 工具包,请查阅 Compose 路径。许多适用于移动 Compose 的开发原则也适用于 Compose for Wear OS。如需了解声明式界面框架的常见优势,请参阅为何采用 Compose。如需详细了解 Compose for Wear OS,请参阅 Compose for Wear OS 路径和 GitHub 上的 Wear OS 示例代码库。
Jetpack Compose on Wear OS 中的 Material Design
Jetpack Compose on Wear OS 提供了 Material 3 的实现,可帮助您设计更具吸引力的应用体验。Wear OS 上的 Material Design 组件构建于 Wear Material Theming 之上。这种主题化是一种系统化的方式,可用于自定义 Material Design 并更好地体现您产品的品牌。
兼容性
Compose for Wear OS 适用于支持 Wear OS 3.0(API 级别 30)及更高版本以及使用 Wear OS 2.0(API 级别 25 及更高版本)的手表。使用 Compose for Wear OS 的版本 1.5 需要使用 androidx.compose 库的 1.8 版本和 Kotlin 1.9.0。您可以使用 BOM 映射和 Compose 到 Kotlin 兼容性映射来检查 Compose 兼容性。界面
Compose for Wear OS 让在 Wear OS 上构建应用变得更加轻松。如需了解更多信息,请参阅应用。使用我们内置的组件来创建符合 Wear OS 准则的用户体验。如需了解有关组件的更多信息,请参阅我们的设计指南。
设置
将 Jetpack Compose 与 Wear OS 结合使用与将 Jetpack Compose 用于任何其他 Android 项目类似。主要区别在于 Jetpack Compose for Wear 添加了 Wear 专用的库,这些库使得创建专为手表定制的用户界面变得更加容易。在某些情况下,这些组件与非 Wear 对应的组件共享相同的名称,例如 androidx.wear.compose.material3.Button
和 androidx.compose.material3.Button
。
在 Android Studio 中创建新应用
如需创建包含 Jetpack Compose 的新项目,请按以下步骤操作:
- 如果您位于欢迎使用 Android Studio 窗口中,请点击启动新的 Android Studio 项目。如果您已打开 Android Studio 项目,请从菜单栏中选择文件 > 新建 > 导入示例。
- 搜索 Compose for Wear 并选择 Compose for Wear OS Starter。
- 在配置项目窗口中,执行以下操作:
- 设置应用名称。
- 为您的示例选择项目位置。
- 点击完成。
- 验证项目
build.gradle
文件配置是否正确,如Gradle 属性文件中所述。
现在您已准备好开始使用 Compose for Wear OS 开发应用。
Jetpack Compose 工具包依赖项
要将 Jetpack Compose 与 Wear OS 结合使用,您需要在应用的 build.gradle
文件中包含 Jetpack Compose 工具包依赖项。大多数与 Wear OS 相关的依赖项更改位于顶层架构层(在下图中用红色框标记)。
这意味着,当您将目标平台设为 Wear OS 时,许多您已在 Jetpack Compose 中使用的依赖项不会发生变化。例如,UI、运行时、编译器和动画依赖项保持不变。
但是,Wear OS 有自己的 material
和 material3
、foundation
和 navigation
库版本,因此请检查您是否使用了正确的库。
尽可能使用 WearComposeMaterial
版本的 API。虽然从技术上讲可以使用移动版本的 Compose Material,但它并未针对 Wear OS 的独特要求进行优化。此外,混合使用 Compose Material 和 Compose Material for Wear OS 可能会导致意外行为。例如,由于每个库都有自己的 MaterialTheme
类,如果同时使用这两个版本,则颜色、排版或形状可能会不一致。
下表概述了 Wear OS 和 Mobile 之间的依赖项差异:
Wear OS 依赖项
(androidx.wear.*) |
比较 | 移动设备依赖项
(androidx.*) |
androidx.wear.compose:compose-material3 | 而不是 | androidx.compose.material:material3 |
androidx.wear.compose:compose-navigation | 而不是 | androidx.navigation:navigation-compose |
androidx.wear.compose:compose-foundation | 以及 | androidx.compose.foundation:foundation |
以下代码段显示了一个包含这些依赖项的 build.gradle
文件的示例:
Kotlin
dependencies { val composeBom = platform("androidx.compose:compose-bom:2025.05.00") // General compose dependencies implementation(composeBom) implementation("androidx.activity:activity-compose:1.10.1") implementation("androidx.compose.ui:ui-tooling-preview:1.8.2") // Other compose dependencies // Compose for Wear OS dependencies implementation("androidx.wear.compose:compose-material3:1.5.0-beta03") // Foundation is additive, so you can use the mobile version in your Wear OS app. implementation("androidx.wear.compose:compose-foundation:1.5.0-beta03") // Wear OS preview annotations implementation("androidx.wear.compose:compose-ui-tooling:1.5.0-beta03") // If you are using Compose Navigation, use the Wear OS version (NOT THE MOBILE VERSION). // Uncomment the line below and update the version number. // implementation("androidx.wear.compose:compose-navigation:1.5.0-beta03") // Testing testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.3") androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0") androidTestImplementation("androidx.compose.ui:ui-test-junit4:1.0.3") debugImplementation("androidx.compose.ui:ui-tooling:1.4.1") }
反馈
试用 Compose for Wear OS 并使用问题跟踪器提供建议和反馈。
加入 Kotlin Slack 上的 #compose-wear 频道,与开发者社区联系并分享您的体验。
为您推荐
- 注意:禁用 JavaScript 时显示链接文本
- Compose 中的资源
- Compose 中的 Material Design 3
- Jetpack Compose 入门