前言
除了布局组件外,Jetpack Compose 还提供了一系列其他常用的 UI 组件。
组件
https://developer.android.google.cn/jetpack/compose/components?hl=zh-cn
入门教程
https://developer.android.google.cn/courses/pathways/compose?hl=zh-cn
按钮
基本使用
1 | Button( |
默认的按钮是圆角的,所以这里不使用Button来改自定义效果。
颜色渐变
1 | import androidx.compose.foundation.background |
背景色
- 推荐使用
ButtonDefaults.buttonColors:它会自动处理按钮的各种状态(按压、禁用等),且符合 Material Design 设计规范。 containerColor参数:在 Material3 中,containerColor用于设置按钮的背景色(替代了 Material2 中的backgroundColor)。- 自定义背景时:需将
containerColor设为Color.Transparent以清除默认背景,避免样式冲突。 - 形状一致性:自定义背景时建议使用
ButtonDefaults.shape保持默认圆角,或通过shape参数指定自定义形状。
示例
1 | Button( |
注意
通过background设置是不生效的。
自定义按钮
效果
组件定义
1 | import androidx.compose.foundation.background |
使用
1 | Box( |
点击去涟漪/防止连点
1 | import android.annotation.SuppressLint |
单选按钮
1 |
|
单选自定义
效果
代码
1 | import androidx.compose.foundation.background |
Switch
基本示例
1 |
|
自定义颜色
1 | import androidx.compose.material3.Switch |
其中可自定义项
uncheckedBorderColor: 关闭状态下边框的颜色uncheckedThumbColor: 关闭状态下滑块的颜色uncheckedTrackColor: 关闭状态下轨道的颜色checkedThumbColor: 开启状态下滑块(thumb)的颜色checkedTrackColor: 开启状态下轨道(track)的颜色disabledCheckedThumbColor: 禁用且开启时的滑块颜色disabledUncheckedThumbColor: 禁用且关闭时的滑块颜色disabledCheckedTrackColor: 禁用且开启时的轨道颜色disabledUncheckedTrackColor: 禁用且关闭时的轨道颜色
自定义大小
Material 3 的 Switch 尺寸为 52×32 dp。
若需微调,用 scale:如 0.9f ~ 1.2f 范围内调整。
假如要调整到高度 28.dp
1 | import androidx.compose.foundation.layout.scale |
注意
不要使用
Modifier.size()强制设置宽高,Switch内部依旧会使用固定尺寸绘制,强行限制容器大小会导致内容被裁剪或显示异常。使用
Modifier.scale()不会改变组件在布局中占用的空间(layout size),它只是在绘制时对内容进行视觉缩放,布局尺寸仍为原始大小。