ts-basic-components-select.md 4.3 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

## 属性

T
third  
tianyu 已提交
26 27
| 名称                    | 参数类型                              | 描述                                          |
| ----------------------- | ------------------------------------- | --------------------------------------------- |
Z
zhaoxinyu 已提交
28
| selected                | number                                | 设置下拉菜单初始选项的索引,第一项的索引为0。<br>当不设置selected属性时,默认选择值为-1,菜单项不选中。 |
S
sienna1128 已提交
29
| value                   | string                                | 设置下拉按钮本身的文本内容。                  |
H
hebingxue 已提交
30 31 32 33 34 35 36 37
| font                    | [Font](ts-types.md#font)          | 设置下拉按钮本身的文本样式。                  |
| fontColor               | [ResourceColor](ts-types.md#resourcecolor) | 设置下拉按钮本身的文本颜色。                  |
| selectedOptionBgColor   | [ResourceColor](ts-types.md#resourcecolor) | 设置下拉菜单选中项的背景色。                  |
| selectedOptionFont      | [Font](ts-types.md#font)          | 设置下拉菜单选中项的文本样式。                |
| selectedOptionFontColor | [ResourceColor](ts-types.md#resourcecolor) | 设置下拉菜单选中项的文本颜色。                |
| optionBgColor           | [ResourceColor](ts-types.md#resourcecolor) | 设置下拉菜单项的背景色。                      |
| optionFont              | [Font](ts-types.md#font)          | 设置下拉菜单项的文本样式。                    |
| optionFontColor         | [ResourceColor](ts-types.md#resourcecolor) | 设置下拉菜单项的文本颜色。                    |
C
select  
chensi10 已提交
38 39 40 41 42 43 44 45 46
| space<sup>10+</sup>         | [Length](ts-types.md#length)               | 设置下拉菜单项的文本与箭头之间的间距。                       |
| arrowPosition<sup>10+</sup> | [ArrowPosition](#arrowposition10枚举说明)                  | 设置下拉菜单项的文本与箭头之间的对齐方式。                     |

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

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

Z
zengyawen 已提交
48 49
## 事件

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

##  示例

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

![](figures/select.png)