Select 选择器 
用于在多个选项中选择单个或多个值。
实现原理 
基于 Dropdown、ListView、Text、Icon 等组件实现,支持单选、多选、禁用、可清空、自定义头部、前后缀等功能。
基础用法 
使用 value、options 和 onChanged 属性实现基本的选择功能。
单选和多选 
通过 multiple 属性切换单选和多选,单选时 value 为 String?,多选时为 List<String>?。
禁用状态 
使用 disabled 属性禁用选择器。
可清空 
使用 clearable 属性启用清空功能。
前缀/后缀/插槽 
通过 prefix、suffix、prepend、append 属性自定义前缀、后缀和插槽内容。
有禁用选项 
SelectOption 支持 disabled 字段,可设置部分选项不可选。
自定义头部 
通过 header 属性自定义下拉面板头部内容。
API 调用 
支持 onChanged、onClear 等事件。
API 
Select 属性 
| 属性名 | 说明 | 类型 | 默认值 | 
|---|---|---|---|
| value | 当前选中值(单选/多选) | String?/List<String>? | - | 
| options | 选项列表 | List<SelectOption> | - | 
| placeholder | 占位符文本 | String? | "请选择" | 
| size | 选择器尺寸 | ESizeItem | ESizeItem.medium | 
| customHeight | 自定义高度 | double? | - | 
| customFontSize | 自定义字体大小 | double? | - | 
| customBorderRadius | 自定义圆角 | double? | - | 
| multiple | 是否多选 | bool | false | 
| disabled | 是否禁用 | bool | false | 
| clearable | 是否可清空 | bool | false | 
| prefix | 前缀 | Widget? | - | 
| suffix | 后缀(可替换默认箭头) | Widget? | - | 
| prepend | 头部插槽 | Widget? | - | 
| append | 尾部插槽 | Widget? | - | 
| header | 自定义下拉面板头部 | Widget? | - | 
| onChanged | 选中值变化时回调 | Function(dynamic) | - | 
| onClear | 清空时回调 | VoidCallback? | - | 
SelectOption 属性 
| 属性名 | 说明 | 类型 | 默认值 | 
|---|---|---|---|
| value | 选项值 | String | - | 
| label | 选项文本 | String | - | 
| disabled | 是否禁用 | bool | false | 
Select 事件 
| 事件名 | 说明 | 参数 | 
|---|---|---|
| onChanged | 选中值变化时 | dynamic | 
| onClear | 清空时触发 | - | 
</rewritten_file>