【HarmonyOS 5.0.0 或以上】构建选择器组件 Selector:单选 / 多选 / 下拉模式统一设计

🎯 目标

封装一个统一风格的选择器组件 CommonSelector,支持以下功能:

  • 单选 / 多选模式切换

  • 支持下拉展开菜单(模拟 Picker 效果)

  • 可自定义选项内容样式(文字 / 图标 / 颜色)

  • 支持禁用、placeholder、最大选择数量等

  • 搭配 FormItem 适用于表单选择项


🧱 使用形式示意

[ 年级 ]  请选择年级   ▾  
点击后弹出:  
✓ 七年级  
  八年级  
  九年级  

🧰 组件实现:CommonSelector.ets

@Component
export struct CommonSelector {
  @Prop options: Array<{ label: string, value: any, disabled?: boolean }> = []
  @Prop multiple: boolean = false
  @Prop placeholder: string = '请选择'
  @Prop disabled: boolean = false
  @Prop max: number = 999
  @Prop selected: any | any[] = this.multiple ? [] : null
  @Prop onChange: (val: any | any[]) => void = () => {}

  @State showPopup: boolean = false

  build() {
    Column() {
      // 选择器主显示区
      Row()
        .height(44)
        .border({ width: 1, color: '#ddd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值