① 自定义 Composable 的使用场景
它就等价于传统开发里的「XML + 自定义 View」,用于封装可复用的 UI 单元。
② @Composable 注解的作用
编译阶段,编译器会自动给函数增加一个 Composer 类型的隐式参数,依靠它识别、追踪需要重组的函数。
补充:
- setContent 不需要额外加 @Composable;
- remember:实现跨重组的缓存能力,重组时保留状态。
③ Modifier
核心原则:
通用修饰属性交给 Modifier;组件独有的属性,直接作为函数入参。
常用 Modifier:
API 说明
Modifier.padding() 设置内边距;Compose 没有独立的 margin
Modifier.clip() 对组件进行裁剪
Modifier.size(180.dp) 指定宽高尺寸
Modifier.fillMaxSize() 铺满父容器,类似传统的 match_parent
Modifier.background() 设置背景颜色
Modifier.clickable 添加点击监听
重点:Modifier 不是普通 Builder,调用顺序会直接影响最终效果。
组件直接传参示例:
文字大小 fontSize、文字颜色 color、点击回调 onClick。
④ Compose 的平台独立性
Compose 的核心设计目标就是平台独立,不直接绑定 Android。
比如:
Text 最终底层,是调用 Canvas.drawText 完成文字绘制。
⑤ Button
示例:
kotlin
Button(onClick = {
// 点击业务
}) {
Text("xxx")
}
笔记说明:
Button 在 material / material3,而不是 foundation。遵循 Material Design,按钮内部不局限于文字,可以放置图片、图标、多行布局等任意子元素。
Compose 的几个关键模块:
ui、runtime、material3、animation、foundation
⑥ 依赖管理
项目推荐使用:TOML + Gradle 统一管理 Compose 依赖。