点击查看:Compose 快速入门
点击查看:Jetpack Compose 与 Kotlin 的兼容性对应关系
要开始使用 Compose,您需要先向项目中添加一些 build 配置。将以下定义添加到应用的 build.gradle 或者build.gradle.kts 文件中:
build.gradle
android {buildFeatures {compose true}composeOptions {kotlinCompilerExtensionVersion = "1.5.9"}kotlinOptions {jvmTarget = "19"}
}
build.gradle.kts
android {buildFeatures {compose = true}composeOptions {kotlinCompilerExtensionVersion = "1.5.9"}kotlinOptions {jvmTarget = "19"}
}
需要注意以下几点:
- 在 Android BuildFeatures 代码块内将 compose 标志设置为 true 会启用 Compose 功能。
- ComposeOptions 代码块中定义的 Kotlin 编译器扩展版本控制与 Kotlin 版本控制相关联。请务必参阅兼容性对应图,并选择与您项目的 Kotlin 版本匹配的库版本。
此外,请将以下部分中您需要的 Compose BoM 和 Compose 库依赖项的子集添加到您的依赖项:
build.gradle
dependencies {def composeBom = platform('androidx.compose:compose-bom:2024.02.00')implementation composeBomandroidTestImplementation composeBom// Choose one of the following:// Material Design 3implementation 'androidx.compose.material3:material3'// or Material Design 2implementation 'androidx.compose.material:material'// or skip Material Design and build directly on top of foundational componentsimplementation 'androidx.compose.foundation:foundation'// or only import the main APIs for the underlying toolkit systems,// such as input and measurement/layoutimplementation 'androidx.compose.ui:ui'// Android Studio Preview supportimplementation 'androidx.compose.ui:ui-tooling-preview'debugImplementation 'androidx.compose.ui:ui-tooling'// UI TestsandroidTestImplementation 'androidx.compose.ui:ui-test-junit4'debugImplementation 'androidx.compose.ui:ui-test-manifest'// Optional - Included automatically by material, only add when you need// the icons but not the material library (e.g. when using Material3 or a// custom design system based on Foundation)implementation 'androidx.compose.material:material-icons-core'// Optional - Add full set of material iconsimplementation 'androidx.compose.material:material-icons-extended'// Optional - Add window size utilsimplementation 'androidx.compose.material3:material3-window-size-class'// Optional - Integration with activitiesimplementation 'androidx.activity:activity-compose:1.8.2'// Optional - Integration with ViewModelsimplementation 'androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1'// Optional - Integration with LiveDataimplementation 'androidx.compose.runtime:runtime-livedata'// Optional - Integration with RxJavaimplementation 'androidx.compose.runtime:runtime-rxjava2'}
build.gradle.kts
dependencies {val composeBom = platform("androidx.compose:compose-bom:2024.02.00")implementation(composeBom)androidTestImplementation(composeBom)// Choose one of the following:// Material Design 3implementation("androidx.compose.material3:material3")// or Material Design 2implementation("androidx.compose.material:material")// or skip Material Design and build directly on top of foundational componentsimplementation("androidx.compose.foundation:foundation")// or only import the main APIs for the underlying toolkit systems,// such as input and measurement/layoutimplementation("androidx.compose.ui:ui")// Android Studio Preview supportimplementation("androidx.compose.ui:ui-tooling-preview")debugImplementation("androidx.compose.ui:ui-tooling")// UI TestsandroidTestImplementation("androidx.compose.ui:ui-test-junit4")debugImplementation("androidx.compose.ui:ui-test-manifest")// Optional - Included automatically by material, only add when you need// the icons but not the material library (e.g. when using Material3 or a// custom design system based on Foundation)implementation("androidx.compose.material:material-icons-core")// Optional - Add full set of material iconsimplementation("androidx.compose.material:material-icons-extended")// Optional - Add window size utilsimplementation("androidx.compose.material3:material3-window-size-class")// Optional - Integration with activitiesimplementation("androidx.activity:activity-compose:1.8.2")// Optional - Integration with ViewModelsimplementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1")// Optional - Integration with LiveDataimplementation("androidx.compose.runtime:runtime-livedata")// Optional - Integration with RxJavaimplementation("androidx.compose.runtime:runtime-rxjava2")}
注意:Jetpack Compose 使用物料清单 (BoM) 提供,以确保所有库组的版本保持同步。如需了解详情,请参阅“物料清单”页面。