HarmonyOS应用开发:Select(基础组件)

提供下拉选择菜单,可以让用户在多个选项之间选择。

说明:

该组件从API Version 8开始支持。

子组件

接口

Select(options: Array<SelectOption>)

参数:

参数名参数类型必填参数描述
optionsArray<SelectOption>设置下拉选项。

SelectOption对象说明

参数名参数类型必填参数描述
valueResourceStr下拉选项内容。
iconResourceStr下拉选项图片。

属性

除支持通用属性外,还支持以下属性:

名称参数类型描述
selectednumber设置下拉菜单初始选项的索引,第一项的索引为0。
当不设置selected属性或设置异常值时,默认选择值为-1,菜单项不选中;当设置为undefined、null时,选中第一项。
从API version 10开始,该属性支持$$双向绑定变量。
valuestring设置下拉按钮本身的文本内容。当菜单选中时默认会替换为菜单项文本内容。
从API version 10开始,该参数支持$$双向绑定变量。
fontFont设置下拉按钮本身的文本样式。
默认值:
{
size: '16fp',
weight: FontWeight.Medium
}
fontColorResourceColor设置下拉按钮本身的文本颜色。
默认值:'#E5182431'
selectedOptionBgColorResourceColor设置下拉菜单选中项的背景色。
默认值:'#33007DFF'
selectedOptionFontFont设置下拉菜单选中项的文本样式。
默认值:
{
size: '16fp',
weight: FontWeight.Regular
}
selectedOptionFontColorResourceColor设置下拉菜单选中项的文本颜色。
默认值:'#ff007dff'
optionBgColorResourceColor设置下拉菜单项的背景色。
默认值:'#ffffffff'
optionFontFont设置下拉菜单项的文本样式。
默认值:
{
size: '16fp',
weight: FontWeight.Regular
}
optionFontColorResourceColor设置下拉菜单项的文本颜色。
默认值:'#ff182431'
space10+Length设置下拉菜单项的文本与箭头之间的间距。
说明:
不支持设置百分比。
arrowPosition10+ArrowPosition设置下拉菜单项的文本与箭头之间的对齐方式。
默认值:ArrowPosition.END
menuAlign10+alignType: MenuAlignType,
offset?: Offset
设置下拉按钮与下拉菜单间的对齐方式。
-alignType: 对齐方式类型,必填。
默认值:MenuAlignType.START
-offset: 按照对齐类型对齐后,下拉菜单相对下拉按钮的偏移量。
默认值:{dx: 0, dy: 0}

ArrowPosition10+枚举说明

名称描述
END10+文字在前,箭头在后。
START10+箭头在前,文字在后。
名称描述
START按照语言方向起始端对齐。
CENTER居中对齐。
END按照语言方向末端对齐。

事件

名称功能描述
onSelect(callback: (index: number, value?: string) => void)下拉菜单选中某一项的回调。
index:选中项的索引。
value:选中项的值。

示例

// xxx.ets
@Entry
@Component
struct SelectExample {
  @State text: string = "TTTTT"
  @State index: number = 2
  @State space: number = 8
  @State arrowPosition: ArrowPosition = ArrowPosition.END
  build() {
    Column() {
      Select([{ value: 'aaa', icon: "/common/public_icon.svg" },
        { value: 'bbb', icon: "/common/public_icon.svg" },
        { value: 'ccc', icon: "/common/public_icon.svg" },
        { value: 'ddd', icon: "/common/public_icon.svg" }])
        .selected(this.index)
        .value(this.text)
        .font({ size: 16, weight: 500 })
        .fontColor('#182431')
        .selectedOptionFont({ size: 16, weight: 400 })
        .optionFont({ size: 16, weight: 400 })
        .space(this.space)
        .arrowPosition(this.arrowPosition)
        .menuAlign(MenuAlignType.START, {dx:0, dy:0})
        .onSelect((index:number, text?: string | undefined)=>{
          console.info('Select:' + index)
          this.index = index;
          if(text){
            this.text = text;
          }
        })
    }.width('100%')
  }
}

写在最后

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing ,不定期分享原创知识。
  • 更多鸿蒙最新技术知识点,请关注作者 

  • 13
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值