ts-basic-components-select.md 4.7 KB
Newer Older
Z
zengyawen 已提交
1
#  Select
Y
yaoyuchi 已提交
2

3
提供下拉选择菜单,可以让用户在多个选项之间选择。
Y
yaoyuchi 已提交
4

T
third  
tianyu 已提交
5 6 7
>  **说明:** 
>
>  该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
Y
yaoyuchi 已提交
8

Z
zengyawen 已提交
9
## 子组件
Y
yaoyuchi 已提交
10 11 12



Z
zengyawen 已提交
13
## 接口
Y
yaoyuchi 已提交
14

S
sienna1128 已提交
15
Select(options: Array\<[SelectOption](#selectoption对象说明)\>)
Z
zengyawen 已提交
16

S
sienna1128 已提交
17
## SelectOption对象说明
Z
zengyawen 已提交
18

T
third  
tianyu 已提交
19 20
| 参数名 | 参数类型                            | 必填 | 参数描述       |
| ------ | ----------------------------------- | ---- | -------------- |
L
fix doc  
luoying_ace_admin 已提交
21 22
| value  | [ResourceStr](ts-types.md#resourcestr) | 是   | 下拉选项内容。 |
| icon   | [ResourceStr](ts-types.md#resourcestr) | 否   | 下拉选项图片。 |
Z
zengyawen 已提交
23 24 25

## 属性

Y
yamila 已提交
26 27
除支持[通用属性](ts-universal-attributes-size.md)外,还支持以下属性:

T
third  
tianyu 已提交
28 29
| 名称                    | 参数类型                              | 描述                                          |
| ----------------------- | ------------------------------------- | --------------------------------------------- |
Z
zhaoxinyu 已提交
30
| selected                | number                                | 设置下拉菜单初始选项的索引,第一项的索引为0。<br>当不设置selected属性时,默认选择值为-1,菜单项不选中。 |
Y
yamila 已提交
31 32 33 34 35 36 37 38 39 40 41
| value                   | string                                | 设置下拉按钮本身的文本内容。当菜单选中时默认会替换为菜单项文本内容。 |
| font                    | [Font](ts-types.md#font)          | 设置下拉按钮本身的文本样式。<br/>默认值:<br/>{<br/>size:&nbsp;'16fp',<br/>weight:&nbsp;FontWeight.Medium<br/>} |
| fontColor               | [ResourceColor](ts-types.md#resourcecolor) | 设置下拉按钮本身的文本颜色。<br/>默认值:'\#E6FFFFFF' |
| selectedOptionBgColor   | [ResourceColor](ts-types.md#resourcecolor) | 设置下拉菜单选中项的背景色。<br/>默认值:'\#33007DFF' |
| selectedOptionFont      | [Font](ts-types.md#font)          | 设置下拉菜单选中项的文本样式。<br/>默认值:<br/>{<br/>size:&nbsp;'16fp',<br/>weight:&nbsp;FontWeight.Regular<br/>} |
| selectedOptionFontColor | [ResourceColor](ts-types.md#resourcecolor) | 设置下拉菜单选中项的文本颜色。<br/>默认值:'\#ff007dff' |
| optionBgColor           | [ResourceColor](ts-types.md#resourcecolor) | 设置下拉菜单项的背景色。<br/>默认值:'\#ffffffff' |
| optionFont              | [Font](ts-types.md#font)          | 设置下拉菜单项的文本样式。<br/>默认值:<br/>{<br/>size:&nbsp;'16fp',<br/>weight:&nbsp;FontWeight.Regular<br/>} |
| optionFontColor         | [ResourceColor](ts-types.md#resourcecolor) | 设置下拉菜单项的文本颜色。<br/>默认值:'\#ff182431' |
| space<sup>10+</sup>         | [Length](ts-types.md#length)               | 设置下拉菜单项的文本与箭头之间的间距。<br/>**说明:** <br/>不支持设置百分比。 |
| arrowPosition<sup>10+</sup> | [ArrowPosition](#arrowposition10枚举说明)                  | 设置下拉菜单项的文本与箭头之间的对齐方式。<br/>默认值:ArrowPosition.END |
C
select  
chensi10 已提交
42 43 44 45 46 47 48

## ArrowPosition<sup>10+</sup>枚举说明

| 名称                | 描述               |
| ------------------- | ------------------ |
| END<sup>10+</sup>   | 文字在前,箭头在后。 |
| START<sup>10+</sup> | 箭头在前,文字在后。 |
49

Z
zengyawen 已提交
50 51
## 事件

T
tianyu 已提交
52 53
| 名称                                                         | 功能描述                                                     |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
54
| onSelect(callback: (index: number, value?:&nbsp;string) => void) | 下拉菜单选中某一项的回调。<br/>index:选中项的索引。<br/>value:选中项的值。 |
Z
zengyawen 已提交
55 56 57

##  示例

H
geshi  
HelloCrease 已提交
58 59
```ts
// xxx.ets
Y
yaoyuchi 已提交
60 61
@Entry
@Component
Y
yaoyuchi 已提交
62
struct SelectExample {
C
select  
chensi10 已提交
63 64 65 66
  @State text: string = "TTTTT"
  @State index: number = 2
  @State space: number = 8
  @State arrowPosition: ArrowPosition = ArrowPosition.END
Y
yaoyuchi 已提交
67 68
  build() {
    Column() {
L
luoying_ace_admin 已提交
69 70 71 72
      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" }])
C
select  
chensi10 已提交
73 74
        .selected(this.index)
        .value(this.text)
L
luoying_ace_admin 已提交
75 76 77 78
        .font({ size: 16, weight: 500 })
        .fontColor('#182431')
        .selectedOptionFont({ size: 16, weight: 400 })
        .optionFont({ size: 16, weight: 400 })
C
select  
chensi10 已提交
79 80 81
        .space(this.space)
        .arrowPosition(this.arrowPosition)
        .onSelect((index:number, text: string)=>{
L
luoying_ace_admin 已提交
82
          console.info('Select:' + index)
C
select  
chensi10 已提交
83 84
          this.index = index;
          this.text = text;
Y
yaoyuchi 已提交
85
        })
L
luoying_ace_admin 已提交
86
    }.width('100%')
Y
yaoyuchi 已提交
87 88 89 90 91
  }
}
```

![](figures/select.png)