1. Hello Compose
任务说明
本案例将创建一个最小可运行的 Jetpack Compose 应用,在屏幕中央显示文本 “Hello, Compose!”。通过这个案例,你将理解一个 Compose 应用的基本结构:Activity 作为宿主、setContent 作为入口、可组合函数作为 UI 描述单元。
实现步骤
首先,在 build.gradle.kts(模块级)中确认已启用 Compose 并添加必要依赖:
android {
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.4"
}
}
dependencies {
implementation(platform("androidx.compose:compose-bom:2023.10.01"))
implementation("androidx.activity:activity-compose:1.8.1")
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.material3:material3")
}
然后,创建主 Activity 并调用 setContent,在其中定义一个可组合函数 Greeting,使用 Text 显示目标字符串,并通过 Box 配合 fillMaxSize 与 wrapContentSize 实现居中布局。
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.sp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Greeting()
}
}
}
@Composable
fun Greeting() {
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Text(
text = "Hello, Compose!",
fontSize = 28.sp
)
}
}
代码说明
MainActivity 继承 ComponentActivity,在 onCreate 中调用 setContent 进入 Compose 世界。Greeting 是一个可组合函数,它不接收参数,内部使用 Box 作为全屏容器,contentAlignment = Alignment.Center 使其子内容居中;Text 显示目标文本并设置字号。整个 UI 由声明式代码描述,无需 XML 布局文件。
运行与验证
将上述代码放入 Android 项目(包名可自定义),连接设备或启动模拟器(API 21+),点击 Run 安装应用。预期界面为:屏幕中央显示黑色文字 “Hello, Compose!”,字号为 28sp,背景为默认白色。若界面正确显示该文本,则案例通过。
判定标准
应用成功安装并启动后,屏幕中央显示 “Hello, Compose!” 文本,无崩溃或编译错误,即表示案例完成。若需进一步验证结构,可尝试修改 Greeting 中的文本内容,重新运行后界面应同步更新,这体现了 Compose 声明式 UI 的特性。