✨ 你即将写出人生第一个 @Composable 函数!就像拿起彩色画笔,在屏幕上画出属于你的UI。轻松、有趣、有逻辑。
Composable 函数 是 Jetpack Compose 中最小的UI构建单元。它是一个用 @Composable 注解标记的普通函数,可以直接描述UI层级,不需要继承或XML布局。
就像乐高积木——每个Composable函数是一块积木,通过嵌套、拼接,搭出整个屏幕。而且每块积木都可以独立更新。
| 方面 | 说明 |
|---|---|
| 🔖 标记 | 告诉 Compose 编译器:这个函数是一个UI生成器,需要特殊处理(支持重组、协程等)。 |
| ⚙️ 编译器服务 | 编译器会为 @Composable 函数生成额外的代码,使其可以在组合中高效运行。 |
| 🧵 上下文切换 | 只能在另一个 @Composable 函数或 Composable 作用域内调用(不可在普通函数中直接调用)。 |
| 🔄 重组能力 | 当状态变化时,Compose 可以智能地重新执行部分 Composable 函数,更新UI。 |
💡 小贴士: 你可以把 @Composable 想象成“魔法注解”——它让普通函数获得绘制UI的超能力。没有它,函数就只是一段普通代码。
✅ 核心规则:首字母大写(PascalCase)
Greeting()、UserProfile()。LoginButton、MessageCard。| ✅ 正确示范 | ❌ 错误示范 | 备注 |
|---|---|---|
UserAvatar() | userAvatar() | 小写开头,不符合规范 |
ProfileScreen() | profile_screen() | 下划线命名,不推荐 |
FancyButton() | fancyButton() | 首字母必须大写 |
TodoListItem() | todoListItem() | 首字母大写,且语义清晰 |
import androidx.compose.runtime.Composable
import androidx.compose.material3.Text
@Composable
fun Greeting(name: String) {
Text(text = "你好,$name!欢迎来到Compose世界 🌍")
}👉 调用时:Greeting("小明") 就会显示 “你好,小明!欢迎来到Compose世界 🌍”
📌 本节课核心记忆点
@Composable 注解的函数,直接生成UI。StudentCard()。