借助 Compose 物料清单 (BoM),您可以管理所有 Compose 库 方法是指定 仅列出 BoM 的版本。BoM 本身包含指向不同 Compose 库的稳定版的链接,以便它们能够很好地协同工作。在应用中使用 BoM 时,您无需向 Compose 库依赖项本身添加任何版本。更新 BoM 版本时,您使用的所有库都会自动更新到新版本。
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2024.09.03") implementation(composeBom) testImplementation(composeBom) androidTestImplementation(composeBom) // Specify Compose library dependencies without a version definition implementation("androidx.compose.foundation:foundation") // .. testImplementation("androidx.compose.ui:ui-test-junit4") // .. androidTestImplementation("androidx.compose.ui:ui-test") }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom:2024.09.03') implementation composeBom testImplementation composeBom androidTestImplementation composeBom // Specify Compose library dependencies without a version definition implementation 'androidx.compose.foundation:foundation' // .. testImplementation 'androidx.compose.ui:ui-test-junit4' // .. androidTestImplementation 'androidx.compose.ui:ui-test' }
如需了解哪些 Compose 库版本已映射到特定 BoM 版本,请查看 BoM 到库的版本映射。
为什么 BoM 中不包含 Compose 编译器库?
Compose Kotlin 编译器扩展 (androidx.compose.compiler) 未关联到 Compose 库版本。而是链接到 编译器插件,并且与 Compose 其余部分分开发布。
从 Kotlin 2.0 开始,Compose 应用编译器将与 Kotlin 编译器一起管理,并使用与 Kotlin 编译器相同的版本。如需了解以下内容,请参阅 Compose Compiler Gradle 插件 配置详细信息
在 Kotlin 2.0 之前,您需要确保使用与您的 Kotlin 版本兼容的版本。您可以在 Compose 与 Kotlin 的兼容性对应关系页面找到映射到每个插件版本的 Kotlin 版本,并在 Compose 编译器页面中了解如何进行配置。
如何使用 BoM 中未指定的库版本?
在 build.gradle
依赖项部分中,保留 BoM 平台的导入内容。在导入库依赖项时,指定替换版本。例如,如果您想使用较新版本的动画库(无论 BoM 中指定了哪个版本),声明依赖项的方法如下:
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2024.09.03") implementation(composeBom) // Override the BOM version when needed implementation("androidx.compose.animation:animation:1.8.0-alpha03") // .. }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform("androidx.compose:compose-bom:2024.09.03") implementation composeBom // Override the BOM version when needed implementation 'androidx.compose.animation:animation:1.8.0-alpha03' // .. }
BoM 是否会自动将所有 Compose 库添加到我的应用中?
不会。要在您的应用中实际添加和使用 Compose 库,您必须在模块(应用级)Gradle 文件(通常是 app/build.gradle)中将每个库声明为单独的依赖项行。
使用 BoM 可确保应用中的任何 Compose 库版本兼容,但 BoM 实际上并不会将这些 Compose 库添加到您的应用中。
为什么建议使用 BoM 管理 Compose 库版本?
今后,Compose 库将单独进行版本控制,这意味着版本号将开始按照自己的节奏递增。最新 每个库的稳定版本一起进行测试。不过,查找 每个库的最新稳定版本可能比较困难,而 BoM 可以帮助您 自动使用这些最新版本
我是否必须使用 BoM?
不会。您仍然可以选择手动添加各个依赖项版本。不过,我们建议您使用 BoM,因为这样您可以更轻松地同时使用所有最新的稳定版本。
BoM 是否支持版本目录?
支持。您可以在版本目录中添加 BoM 本身,并省略其他 Compose 库版本:
[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }
不要忘记在模块的 build.gradle
中导入 BoM:
Kotlin
dependencies { val composeBom = platform(libs.androidx.compose.bom) implementation(composeBom) androidTestImplementation(composeBom) // import Compose dependencies as usual }
Groovy
dependencies { Dependency composeBom = platform(libs.androidx.compose.bom) implementation composeBom androidTestImplementation(composeBom) // import Compose dependencies as usual }
如果我想试用 Compose 库的 Alpha 版或 Beta 版,该怎么办?
有三个可用的 Compose BoM。每个 BoM 都是可用最新版 Compose 库的某个时间点的快照。
- 稳定版 - 包含每个库的最新稳定版
- Beta 版 - 包含每个库的最新 Beta 版、候选版本 (RC) 或稳定版
- Alpha - 包含每个库的最新 Alpha 版、Beta 版、RC 版或稳定版
Alpha 版和 Beta 版 BoM 是通过添加 -alpha
和
将 -beta
设置为 BoM 工件名称。稳定版没有后缀。
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom-alpha:2024.09.03") // or platform("androidx.compose:compose-bom-beta:2024.09.03") implementation(composeBom) // .. }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2024.09.03') // or platform('androidx.compose:compose-bom-beta:2024.09.03') implementation composeBom // .. }
如何报告问题或提供与 BoM 有关的反馈?
您可以在我们的问题跟踪器上提交问题。
为您推荐
- 注意:当 JavaScript 处于关闭状态时,系统会显示链接文字
- Compose 中的 Material Design 3
- Compose 中的 ConstraintLayout
- Compose 中的资源