# TextPicker
滑动选择文本内容的组件。
> **说明:**
>
> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
## 子组件
无
## 接口
TextPicker(options?: {range: string[] | string[][] | Resource | TextPickerRangeContent[] | TextCascadePickerRangeContent[], selected?: number, value?: string})
根据range指定的选择范围创建文本选择器。
**参数:**
| 参数名 | 参数类型 | 必填 | 参数描述 |
| -------- | -------- | -------- | -------- |
| range | string[] \| string[][]10+ \| [Resource](ts-types.md#resource类型) \|
[TextPickerRangeContent](#textpickerrangecontent10类型说明)[]10+ \| [TextCascadePickerRangeContent](#textcascadepickerrangecontent10类型说明)[]10+ | 是 | 选择器的数据选择列表。不可设置为空数组,若设置为空数组,则不显示;若动态变化为空数组,则保持当前正常值显示。
**说明**:单列数据选择器使用string[],Resource,TextPickerRangeContent[]类型。
多列数据选择器使用string[][]类型。
多列联动数据选择器使用TextCascadePickerRangeContent[]类型。|
| selected | number \| number[]10+ | 否 | 设置默认选中项在数组中的索引值。
默认值:0
**说明**:单列数据选择器使用number类型。
多列、多列联动数据选择器使用number[]类型。
从API version 10开始,该参数支持[$$](../../quick-start/arkts-two-way-sync.md)双向绑定变量。|
| value | string \| string[]10+ | 否 | 设置默认选中项的值,优先级低于selected。
默认值:第一个元素值
**说明**:只有显示文本列表时该值有效。显示图片或图片加文本的列表时,该值无效。
单列数据选择器使用string类型。
多列、多列联动数据选择器使用string[]类型。
从API version 10开始,该参数支持[$$](../../quick-start/arkts-two-way-sync.md)双向绑定变量。|
## TextPickerRangeContent10+类型说明
| 参数名 | 参数类型 | 必填 | 参数描述 |
| ------ | -------------------------------------------------------- | ---- | ---------- |
| icon | string \| [Resource](ts-types.md#resource) | 是 | 图片资源。 |
| text | string \| [Resource](ts-types.md#resource) | 否 | 文本信息。 |
## TextCascadePickerRangeContent10+类型说明
| 参数名 | 参数类型 | 必填 | 参数描述 |
| ------ | -------------------------------------------------------- | ---- | ---------- |
| text | string \| [Resource](ts-types.md#resource) | 是 | 文本信息。 |
| children | [TextCascadePickerRangeContent](#textcascadepickerrangecontent10类型说明)[] | 否 | 联动数据。 |
## 属性
除支持[通用属性](ts-universal-attributes-size.md)外,还支持以下属性:
| 名称 | 参数类型 | 描述 |
| -------- | -------- | -------- |
| defaultPickerItemHeight | number \| string | 设置Picker各选择项的高度。 |
| disappearTextStyle10+ | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 设置所有选项中最上和最下两个选项的文本颜色、字号、字体粗细。 |
| textStyle10+ | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 设置所有选项中除了最上、最下及选中项以外的文本颜色、字号、字体粗细。 |
| selectedTextStyle10+ | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 设置选中项的文本颜色、字号、字体粗细。 |
| selectedIndex10+ | number \| number[] | 设置默认选中项在数组中的索引值,优先级高于options中的选中值。
**说明**:单列数据选择器使用number类型。多列、多列联动数据选择器使用number[]类型。 |
## 事件
除支持[通用事件](ts-universal-events-click.md)外,还支持以下事件:
| 名称 | 描述 |
| -------- | -------- |
| onAccept(callback: (value: string, index: number) => void) | 点击弹窗中的“确定”按钮时触发该回调。
- value: 当前选中项的文本。
- index: 当前选中项的索引值。
**说明:**
该事件仅在[文本滑动选择器弹窗](ts-methods-textpicker-dialog.md)中生效。 |
| onCancel(callback: () => void) | 点击弹窗中的“取消”按钮时触发该回调。
**说明:**
该事件仅在[文本滑动选择器弹窗](ts-methods-textpicker-dialog.md)中生效。 |
| onChange(callback: (value: string \| string[]10+, index: number \| number[]10+) => void) | 滑动选中TextPicker文本内容后,触发该回调。
- value: 当前选中项的文本。(多列的情况,value为数组类型。)
- index: 当前选中项的索引值。(多列的情况,index为数组类型。)
**说明**:当显示文本或图片加文本列表时,value值为选中项中的文本值,当显示图片列表时,value值为空。 |
## 示例
```ts
// xxx.ets
@Entry
@Component
struct TextPickerExample {
private select: number = 1
private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4']
build() {
Column() {
TextPicker({ range: this.fruits, selected: this.select })
.onChange((value: string, index: number) => {
console.info('Picker item changed, value: ' + value + ', index: ' + index)
})
}
}
}
```
