Picker

fun <T> Picker(items: Set<T>, itemText: (T) -> String = { it.toString() }, textStyle: TextStyle = AppText.Normal.Title.default, selectedItem: T = items.first(), onValueChange: (T) -> Unit = {})

单列滚轮选择器 以 LazyColumn 实现可滚动选项列表,固定显示 5 行,中间高亮行为当前选中项 滚动结束后自动吸附到最近选项(Snap 效果),并回调选中变更

Parameters

items

Set 所有可选项,要求非空

itemText

(T) -> String 将选项转换为显示文字的函数,默认调用 toString()

textStyle

TextStyle 选项文字样式,默认 AppText.Normal.Title.default

selectedItem

T 当前选中的项,默认取第一项

onValueChange

(T) -> Unit 选中项变更回调,滚动停止后触发,默认无操作