跳转到内容

Stepper

步进器让用户通过减号和加号按钮以固定步长调整整数值,对应 ColorOS 的 COUIStepperView(32dp 圆形按钮,带 OPLUS 步进马达震动)。

引入

kotlin
import io.github.suqi8.coui.kmp.basic.Stepper
import io.github.suqi8.coui.kmp.basic.StepperDefaults

基本用法

kotlin
var value by remember { mutableIntStateOf(2) }

Stepper(
    value = value,
    onValueChange = { value = it },
    minValue = 0,
    maxValue = 10,
)

属性

Stepper

属性类型说明默认值必需
valueInt当前值-
onValueChange(Int) -> Unit步进时返回新值的回调-
modifierModifier应用于步进器的修饰符Modifier
minValueInt可达到的最小值Int.MIN_VALUE
maxValueInt可达到的最大值Int.MAX_VALUE
stepInt每次按压的增减量1
enabledBoolean步进器是否启用true
colorsStepperColors颜色配置StepperDefaults.stepperColors()

StepperDefaults

常量类型默认值
ButtonSizeDp32.dp
GlyphSizeDp15.2.dp
GlyphStrokeWidthDp1.6.dp
SpacingDp12.dp
IndicatorMinWidthDp44.dp

stepperColors() 工厂

参数类型默认值
buttonColorColorCOUITheme.colorScheme.secondaryContainer
contentColorColorCOUITheme.colorScheme.onSurface
disabledContentColorColorCOUITheme.colorScheme.disabledOnSurface

行为

  • 按 − 或 + 会按 step 改变数值,并钳制到 [minValue, maxValue]
  • 当数值到达边界时,对应按钮会自动禁用。
  • 每次成功步进会触发 COUI 步进震动(ColorOS 上为 OPLUS 常量 308,其它平台回退到最接近的标准震动)。

变更日志

基于 Apache-2.0 许可发布