使用物料清单

借助 Compose 物料清单 (BoM),您只需指定 BoM 的版本,即可管理所有 Compose 库版本。BoM 本身包含指向不同 Compose 库的稳定版的链接,以便它们能够很好地协同工作。在应用中使用 BoM 时,您无需向 Compose 库依赖项本身添加任何版本。更新 BoM 版本时,您使用的所有库都会自动更新到新版本。

如需了解哪些 Compose 库版本已映射到特定 BoM 版本,请查看 BoM 到库的版本映射

为什么 BoM 中不包含 Compose 编译器库?

Compose Kotlin 编译器扩展 (androidx.compose.compiler) 未关联到 Compose 库版本。相反,它会关联到 Kotlin 编译器插件的版本,并与 Compose 的其余部分分开发布,因此请务必使用与您的 Kotlin 版本兼容的版本。您可以在 Compose 与 Kotlin 的兼容性对应关系页面找到映射到每个插件版本的 Kotlin 版本。

如何使用 BoM 中未指定的库版本?

build.gradle 依赖项部分中,保留 BoM 平台的导入内容。在导入库依赖项时,指定所需的版本。例如,如果您想使用 Alpha 版 Material 3(无论 BoM 中指定了哪个版本),声明依赖项的方法如下:

dependencies {
    // Import the Compose BOM
    implementation platform('androidx.compose:compose-bom:2024.03.00')

    // Import Material Design 3 library
    implementation 'androidx.compose.material3:material3:1.1.2'

    // Import other Compose libraries without version numbers
    // ..
    implementation 'androidx.compose.foundation:foundation'
}

BoM 是否会自动将所有 Compose 库添加到我的应用中?

不会。要在您的应用中实际添加和使用 Compose 库,您必须在模块(应用级)Gradle 文件(通常是 app/build.gradle)中将每个库声明为单独的依赖项行。

使用 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:

dependencies {
    val composeBom = platform(libs.androidx.compose.bom)
    implementation(composeBom)
    androidTestImplementation(composeBom)

    // import Compose dependencies as usual
}

如何报告问题或提供与 BoM 有关的反馈?

您可以在我们的问题跟踪器上提交问题。