• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# TextPicker
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @luoying_ace_admin-->
5<!--Designer: @weixin_52725220-->
6<!--Tester: @xiong0104-->
7<!--Adviser: @HelloCrease-->
8
9滑动选择文本、图片或图文混排内容的组件,用户可以按需创建单列数据选择器、多列非联动数据选择器和多列联动数据选择器。
10
11>  **说明:**
12>
13> - 该组件从API version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
14>
15> - 该组件不建议开发者在动效过程中修改属性数据。
16>
17> - 该组件最大显示行数在横竖屏模式下存在差异,竖屏为5行,横屏为3行。
18>
19> - 多列非联动数据选择器和多列联动数据选择器在下文中统称为多列数据选择器。
20
21
22## 子组件
23
2425
26
27## 接口
28
29TextPicker(options?: TextPickerOptions)
30
31根据指定的数据列表创建文本选择器。
32
33**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
34
35**系统能力:** SystemCapability.ArkUI.ArkUI.Full
36
37**参数:**
38
39| 参数名  | 类型                                            | 必填 | 说明                   |
40| ------- | ----------------------------------------------- | ---- | ---------------------- |
41| options | [TextPickerOptions](#textpickeroptions对象说明) | 否   | 配置文本选择器的参数。 |
42
43## TextPickerOptions对象说明
44
45文本选择器的参数说明。
46
47**系统能力:** SystemCapability.ArkUI.ArkUI.Full
48
49| 名称 | 类型 | 只读 | 可选 | 说明 |
50| -------- | -------- | -------- | -------- | -------- |
51| range | string[]&nbsp;\|&nbsp;string[][]<sup>10+</sup> \| [Resource](ts-types.md#resource)&nbsp;\|<br/>[TextPickerRangeContent](#textpickerrangecontent10对象说明)[]<sup>10+</sup>&nbsp;\|&nbsp;[TextCascadePickerRangeContent](#textcascadepickerrangecontent10对象说明)[]<sup>10+</sup> | 否 | 否 | 选择器的数据选择列表。不可设置为空数组,若设置为空数组,则不显示;若动态变化为空数组,则保持当前正常值显示。<br/>**说明**:<br/>1. 单列数据选择器使用string[],[Resource](ts-types.md#resource),[TextPickerRangeContent](#textpickerrangecontent10对象说明)[]类型。<br/>2. 多列非联动数据选择器使用string[][]类型。 <br/>3. 多列联动数据选择器使用[TextCascadePickerRangeContent](#textcascadepickerrangecontent10对象说明)[]类型。<br/>4. Resource类型只支持[strarray.json](../../../quick-start/resource-categories-and-access.md#资源组目录)。<br>5. range的类型及列数不可以动态修改。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。|
52| selected | number&nbsp;\|&nbsp;number[]<sup>10+</sup> | 否 | 是 | 设置选中项在数据选择列表中的索引值,索引从0开始。<br/>默认值:0 <br/>**说明**:<br/>1. 单列数据选择器使用number类型。<br/>2. 多列数据选择器使用number[]类型。<br />3. 从API version 10开始,该参数支持[$$](../../../ui/state-management/arkts-two-way-sync.md)双向绑定变量。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。|
53| value | [ResourceStr](ts-types.md#resourcestr)&nbsp;\|&nbsp;[ResourceStr](ts-types.md#resourcestr)[] | 否 | 是 | 设置选中项的值,优先级低于selected。<br/>默认值:数据选择列表中第一个元素的值。<br/> **说明**:<br/>1. 从API version 10开始,该参数支持[$$](../../../ui/state-management/arkts-two-way-sync.md)双向绑定变量。<br/>2. 从API version 20开始,支持[Resource](ts-types.md#resource)类型。<br/>3. 只有显示文本列表时该值有效。显示图片或图文混排的列表时,该值无效。<br/>4. 单列数据选择器使用[ResourceStr](ts-types.md#resourcestr)类型。<br/>5. 多列数据选择器使用[ResourceStr](ts-types.md#resourcestr)[]类型。<br />**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。|
54| columnWidths<sup>18+</sup> | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)[] | 否 | 是 | 设置每一列的列宽。<br/>默认值:每一列的列宽相等,为组件宽度除以列数。<br/>**说明**:<br/>1. 当文本长度大于列宽时,文本被截断。<br/>2. 当设置为异常值时,使用默认值。<br/>3. 支持设置为Undefined和Null,不支持Undefined[]和Null[]。<br />**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。 |
55
56## TextPickerRangeContent<sup>10+</sup>对象说明
57
58单列数据选择器的数据选项内容。
59
60**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
61
62**系统能力:** SystemCapability.ArkUI.ArkUI.Full
63
64| 名称 | 类型                                                 | 只读 | 可选 | 说明                                                         |
65| ---- | ---------------------------------------------------- | ---- | ---- | ------------------------------------------------------------ |
66| icon | string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 否   | 否   | 图片资源。 icon是string类型时,表示图片存放的路径,例如"/common/hello.png"。 |
67| text | string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 否   | 是   | 文本信息。<br/>默认值:空字符串<br/>**说明**:当文本长度大于列宽时,文本被截断。 |
68
69## TextCascadePickerRangeContent<sup>10+</sup>对象说明
70
71多列联动数据选择器的数据选项内容。
72
73**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
74
75**系统能力:** SystemCapability.ArkUI.ArkUI.Full
76
77| 名称 | 类型                                                 | 只读 | 可选 | 说明   |
78| ------ | -------------------------------------------------------- | ---- | ---------- | ---------- |
79| text   | string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 否  | 否  | 文本信息。<br/>**说明**:当文本长度大于列宽时,文本被截断。 |
80| children   | [TextCascadePickerRangeContent](#textcascadepickerrangecontent10对象说明)[] | 否  | 是  | 联动数据。 |
81## DividerOptions<sup>12+</sup>对象说明
82
83分割线的信息。
84
85**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
86
87**系统能力:** SystemCapability.ArkUI.ArkUI.Full
88
89| 名称        | 类型                                       | 只读 | 可选 | 说明                                                         |
90| ----------- | ------------------------------------------ | ---- | ---- | ------------------------------------------------------------ |
91| strokeWidth | [Dimension](ts-types.md#dimension10)       | 否   | 是   | 分割线的线宽。<br/>默认值:2.0px<br/>单位:默认为vp,也可指定单位为px。<br/>取值范围:strokeWidth小于0取默认值,最大不得超过列高的一半。不支持"百分比"类型。 |
92| startMargin | [Dimension](ts-types.md#dimension10)       | 否   | 是   | 分割线与TextPicker侧边起始端的距离。<br/>默认值:0<br/>单位:默认为vp,也可指定单位为px。<br/>取值范围:startMargin小于0时无效,最大值不得超过TextPicker列宽。不支持“百分比”类型。 |
93| endMargin   | [Dimension](ts-types.md#dimension10)       | 否   | 是   | 分割线与TextPicker侧边结束端的距离。<br/>默认值:0<br/>单位:默认为vp,也可指定单位为px。<br/>取值范围:endMargin小于0时无效,最大值不得超过TextPicker列宽。不支持“百分比”类型。 |
94| color       | [ResourceColor](ts-types.md#resourcecolor) | 否   | 是   | 分割线的颜色。<br/>默认值:'#33000000'                       |
95
96## 属性
97
98除支持[通用属性](ts-component-general-attributes.md)外,还支持以下属性:
99
100### defaultPickerItemHeight
101
102defaultPickerItemHeight(value: number | string)
103
104设置选择项的高度。
105
106**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
107
108**系统能力:** SystemCapability.ArkUI.ArkUI.Full
109
110**参数:**
111
112| 参数名 | 类型                       | 必填 | 说明                   |
113| ------ | -------------------------- | ---- | ---------------------- |
114| value  | number&nbsp;\|&nbsp;string | 是   | 选择项的高度。<br />取值范围:<br />number类型:[0, +∞),单位为vp。<br />string类型:仅支持number类型取值的字符串形式,例如"56"。<br />默认值:选中项56vp,非选中项36vp。<br />**说明:**<br />设置该参数后,选中项与非选中项的高度均为所设置的值。 |
115
116### defaultPickerItemHeight<sup>18+</sup>
117
118defaultPickerItemHeight(height: Optional\<number | string>)
119
120设置选择项的高度。与[defaultPickerItemHeight](#defaultpickeritemheight)相比,height参数新增了对undefined类型的支持。
121
122**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
123
124**系统能力:** SystemCapability.ArkUI.ArkUI.Full
125
126**参数:**
127
128| 参数名 | 类型                       | 必填 | 说明                   |
129| ------ | -------------------------- | ---- | ---------------------- |
130| height  | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<number&nbsp;\|&nbsp;string> | 是   | 选择项的高度。<br />取值范围:<br />number类型:[0, +∞),单位为vp。<br />string类型:仅支持number类型取值的字符串形式,例如"56"。<br />默认值:选中项56vp,非选中项36vp。<br />**说明:**<br />1. 设置该参数后,选中项与非选中项的高度均为所设置的值。<br/>2. 当height的值为undefined时,维持上次取值。 |
131
132### disappearTextStyle<sup>10+</sup>
133
134disappearTextStyle(value: PickerTextStyle)
135
136设置边缘项(以选中项为基准向上或向下的第二项)的文本颜色、字号、字体粗细。
137
138**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
139
140**系统能力:** SystemCapability.ArkUI.ArkUI.Full
141
142**参数:**
143
144| 参数名 | 类型                                                         | 必填 | 说明                                                         |
145| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
146| value  | [PickerTextStyle](ts-picker-common.md#pickertextstyle对象说明) | 是   | 边缘项的文本颜色、字号、字体粗细。<br/>默认值:<br/>{<br/>color: '#ff182431',<br/>font: {<br/>size: '14fp', <br/>weight: FontWeight.Regular<br/>}<br/>} |
147
148>  **说明:**
149>
150> 若选中项向上或向下的可视项数低于两项则无对应边缘项。
151
152### disappearTextStyle<sup>18+</sup>
153
154disappearTextStyle(style: Optional\<PickerTextStyle>)
155
156设置边缘项(以选中项为基准向上或向下的第二项)的文本颜色、字号、字体粗细。与[disappearTextStyle<sup>10+</sup>](#disappeartextstyle10)相比,style参数新增了对undefined类型的支持。
157
158**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
159
160**系统能力:** SystemCapability.ArkUI.ArkUI.Full
161
162**参数:**
163
164| 参数名 | 类型                                                         | 必填 | 说明                                                         |
165| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
166| style  | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<[PickerTextStyle](ts-picker-common.md#pickertextstyle对象说明)> | 是   | 边缘项的文本颜色、字号、字体粗细。<br/>默认值:<br/>{<br/>color: '#ff182431',<br/>font: {<br/>size: '14fp', <br/>weight: FontWeight.Regular<br/>}<br/>}<br/>当style的值为undefined时,使用默认值。 |
167
168>  **说明:**
169>
170> 若选中项向上或向下的可视项数低于两项则无对应边缘项。
171
172### disappearTextStyle<sup>20+</sup>
173
174disappearTextStyle(style: Optional\<PickerTextStyle\|TextPickerTextStyle>)
175
176设置边缘项(以选中项为基准向上或向下的第二项)的文本颜色、字号、字体粗细、最大字号、最小字号、超长文本截断方式。与[disappearTextStyle](#disappeartextstyle18)<sup>18+</sup>相比,style参数新增了对[TextPickerTextStyle](#textpickertextstyle15类型说明)类型的支持。
177
178**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
179
180**系统能力:** SystemCapability.ArkUI.ArkUI.Full
181
182**参数:**
183
184| 参数名 | 类型                                                         | 必填 | 说明                                                         |
185| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
186| style  | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<[PickerTextStyle](ts-picker-common.md#pickertextstyle对象说明)\|[TextPickerTextStyle](#textpickertextstyle15类型说明)> | 是   | 边缘项的文本颜色、字号、字体粗细、最大字号、最小字号、超长文本截断方式。<br/>默认值:<br/>{<br/>color: '#ff182431',<br/>font: {<br/>size: '14fp', <br/>weight: FontWeight.Regular<br/>},<br/>minFontSize: 0,<br/>maxFontSize: 0,<br/>overflow: TextOverflow.Clip<br/>}<br/>当style的值为undefined时,使用默认值。 |
187
188>  **说明:**
189>
190> 若选中项向上或向下的可视项数低于两项则无对应边缘项。
191
192### textStyle<sup>10+</sup>
193
194textStyle(value: PickerTextStyle)
195
196设置待选项(以选中项为基准向上或向下的第一项)的文本颜色、字号、字体粗细。
197
198**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
199
200**系统能力:** SystemCapability.ArkUI.ArkUI.Full
201
202**参数:**
203
204| 参数名 | 类型                                                         | 必填 | 说明                                                         |
205| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
206| value  | [PickerTextStyle](ts-picker-common.md#pickertextstyle对象说明) | 是   | 待选项的文本颜色、字号、字体粗细。<br/>默认值:<br/>{<br/>color: '#ff182431',<br/>font: {<br/>size: '16fp', <br/>weight: FontWeight.Regular<br/>}<br/>} |
207
208>  **说明:**
209>
210> 若选中项向上或向下可视项数低于一项则无对应待选项。
211
212### textStyle<sup>18+</sup>
213
214textStyle(style: Optional\<PickerTextStyle>)
215
216设置待选项(以选中项为基准向上或向下的第一项)的文本颜色、字号、字体粗细。与[textStyle<sup>10+</sup>](#textstyle10)相比,style参数新增了对undefined类型的支持。
217
218**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
219
220**系统能力:** SystemCapability.ArkUI.ArkUI.Full
221
222**参数:**
223
224| 参数名 | 类型                                                         | 必填 | 说明                                                         |
225| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
226| style  | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<[PickerTextStyle](ts-picker-common.md#pickertextstyle对象说明)> | 是   | 待选项的文本颜色、字号、字体粗细。<br/>默认值:<br/>{<br/>color: '#ff182431',<br/>font: {<br/>size: '16fp', <br/>weight: FontWeight.Regular<br/>}<br/>}<br/>当style的值为undefined时,使用默认值。 |
227
228>  **说明:**
229>
230> 若选中项向上或向下可视项数低于一项则无对应待选项。
231
232### textStyle<sup>20+</sup>
233
234textStyle(style: Optional\<PickerTextStyle\|TextPickerTextStyle>)
235
236设置待选项(以选中项为基准向上或向下的第一项)的文本颜色、字号、字体粗细、最大字号、最小字号、超长文本截断方式。与[textStyle](#textstyle18)<sup>18+</sup>相比,style参数新增了对[TextPickerTextStyle](#textpickertextstyle15类型说明)类型的支持。
237
238**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
239
240**系统能力:** SystemCapability.ArkUI.ArkUI.Full
241
242**参数:**
243
244| 参数名 | 类型                                                         | 必填 | 说明                                                         |
245| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
246| style  | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<[PickerTextStyle](ts-picker-common.md#pickertextstyle对象说明)\|[TextPickerTextStyle](#textpickertextstyle15类型说明)> | 是   | 待选项的文本颜色、字号、字体粗细。<br/>默认值:<br/>{<br/>color: '#ff182431',<br/>font: {<br/>size: '16fp', <br/>weight: FontWeight.Regular<br/>},<br/>minFontSize: 0,<br/>maxFontSize: 0,<br/>overflow: TextOverflow.Clip<br/>}<br/>当style的值为undefined时,使用默认值。 |
247
248>  **说明:**
249>
250> 若选中项向上或向下可视项数低于一项则无对应待选项。
251
252### selectedTextStyle<sup>10+</sup>
253
254selectedTextStyle(value: PickerTextStyle)
255
256设置选中项的文本颜色、字号、字体粗细。
257
258**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
259
260**系统能力:** SystemCapability.ArkUI.ArkUI.Full
261
262**设备行为差异:** 该属性在Wearable设备上使用无效果,在其他设备中可正常生效。
263
264**参数:**
265
266| 参数名 | 类型                                                         | 必填 | 说明                                                         |
267| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
268| value  | [PickerTextStyle](ts-picker-common.md#pickertextstyle对象说明) | 是   | 选中项的文本颜色、字号、字体粗细。<br/>默认值:<br/>{<br/>color: '#ff007dff',<br/>font: {<br/>size: '20fp', <br/>weight: FontWeight.Medium<br/>}<br/>} |
269
270### selectedTextStyle<sup>18+</sup>
271
272selectedTextStyle(style: Optional\<PickerTextStyle>)
273
274设置选中项的文本颜色、字号、字体粗细。与[selectedTextStyle<sup>10+</sup>](#selectedtextstyle10)相比,style参数新增了对undefined类型的支持。
275
276**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
277
278**系统能力:** SystemCapability.ArkUI.ArkUI.Full
279
280**设备行为差异:** 该属性在Wearable设备上使用无效果,在其他设备中可正常生效。
281
282**参数:**
283
284| 参数名 | 类型                                                         | 必填 | 说明                                                         |
285| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
286| style  | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<[PickerTextStyle](ts-picker-common.md#pickertextstyle对象说明)> | 是   | 选中项的文本颜色、字号、字体粗细。<br/>默认值:<br/>{<br/>color: '#ff007dff',<br/>font: {<br/>size: '20fp', <br/>weight: FontWeight.Medium<br/>}<br/>}<br/>当style的值为undefined时,使用默认值。 |
287
288### selectedTextStyle<sup>20+</sup>
289
290selectedTextStyle(style: Optional\<PickerTextStyle\|TextPickerTextStyle>)
291
292设置选中项的文本颜色、字号、字体粗细、最大字号、最小字号、超长文本截断方式。与[selectedTextStyle](#selectedtextstyle18)<sup>18+</sup>相比,style参数新增了对[TextPickerTextStyle](#textpickertextstyle15类型说明)类型的支持。
293
294**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
295
296**系统能力:** SystemCapability.ArkUI.ArkUI.Full
297
298**设备行为差异:** 该属性在Wearable设备上使用无效果,在其他设备中可正常生效。
299
300**参数:**
301
302| 参数名 | 类型                                                         | 必填 | 说明                                                         |
303| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
304| style  | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<[PickerTextStyle](ts-picker-common.md#pickertextstyle对象说明)\|[TextPickerTextStyle](#textpickertextstyle15类型说明)> | 是   | 选中项的文本颜色、字号、字体粗细、最大字号、最小字号、超长文本截断方式。<br/>默认值:<br/>{<br/>color: '#ff007dff',<br/>font: {<br/>size: '20fp', <br/>weight: FontWeight.Medium<br/>},<br/>minFontSize: 0,<br/>maxFontSize: 0,<br/>overflow: TextOverflow.Clip<br/>}<br/>当style的值为undefined时,使用默认值。 |
305
306### selectedIndex<sup>10+</sup>
307
308selectedIndex(value: number | number[])
309
310设置选中项在数据选择列表中的索引值,优先级高于[TextPickerOptions](#textpickeroptions对象说明)中的"value"属性。单列数据选择器使用number类型。多列数据选择器使用number[]类型。
311
312**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
313
314**系统能力:** SystemCapability.ArkUI.ArkUI.Full
315
316**参数:**
317
318| 参数名 | 类型                         | 必填 | 说明                         |
319| ------ | ---------------------------- | ---- | ---------------------------- |
320| value  | number&nbsp;\|&nbsp;number[] | 是   | 选中项在数据选择列表中的索引值,索引从0开始。<br/>默认值:0 <br/>当value的值为负数或者超过数据选择列表的最大索引值时,使用默认值。<br/> |
321
322### selectedIndex<sup>18+</sup>
323
324selectedIndex(index: Optional\<number | number[]>)
325
326设置选中项在数据选择列表中的索引值,优先级高于[TextPickerOptions](#textpickeroptions对象说明)中的"value"属性。单列数据选择器使用number类型,多列数据选择器使用number[]类型。与[selectedIndex<sup>10+</sup>](#selectedindex10)相比,index参数新增了对undefined类型的支持。
327
328**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
329
330**系统能力:** SystemCapability.ArkUI.ArkUI.Full
331
332**参数:**
333
334| 参数名 | 类型                                                         | 必填 | 说明                                                         |
335| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
336| index  | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<number&nbsp;\|&nbsp;number[]> | 是   | 选中项在数据选择列表中的索引值,索引从0开始。<br/>默认值:0 <br/>当index的值为undefined时,使用[TextPickerOptions](#textpickeroptions对象说明)中的selected值。<br/>当index的值为负数或者超过数据选择列表的最大索引值时,使用默认值。<br/> |
337
338### canLoop<sup>10+</sup>
339
340canLoop(value: boolean)
341
342设置是否可循环滚动。
343
344**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
345
346**系统能力:** SystemCapability.ArkUI.ArkUI.Full
347
348**参数:**
349
350| 参数名 | 类型    | 必填 | 说明                                                         |
351| ------ | ------- | ---- | ------------------------------------------------------------ |
352| value  | boolean | 是   | 是否可循环滚动。<br/>- true:可循环。<br/>- false:不可循环。<br/>默认值:true |
353
354### canLoop<sup>18+</sup>
355
356canLoop(isLoop: Optional\<boolean>)
357
358设置是否可循环滚动。与[canLoop<sup>10+</sup>](#canloop10)相比,isLoop参数新增了对undefined类型的支持。
359
360**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
361
362**系统能力:** SystemCapability.ArkUI.ArkUI.Full
363
364**参数:**
365
366| 参数名 | 类型    | 必填 | 说明                                                         |
367| ------ | ------- | ---- | ------------------------------------------------------------ |
368| isLoop  | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<boolean> | 是   | 是否可循环滚动。<br/>- true:可循环。<br/>- false:不可循环。<br/>默认值:true<br/>当isLoop的值为undefined时,使用默认值。 |
369
370### divider<sup>12+</sup>
371
372divider(value: DividerOptions | null)
373
374设置分割线样式,不设置该属性则按“默认值”展示分割线。
375
376[DividerOptions](#divideroptions12对象说明)中startMargin + endMargin 超过组件宽度后,startMargin和endMargin会被置0。
377
378**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
379
380**系统能力:** SystemCapability.ArkUI.ArkUI.Full
381
382**参数:**
383| 参数名 | 类型    | 必填 | 说明                                                                  |
384| ------ | ------- | ---- | --------------------------------------------------------------------- |
385| value | [DividerOptions](#divideroptions12对象说明) \| null | 是   | 默认值:<br/>{<br/>strokeWidth: '2px', <br/>startMargin: 0, <br/>endMargin: 0, <br/>color: '#33000000'<br/>}<br/>1. 当textDivider设置为有效的[DividerOptions](#divideroptions12对象说明)时,按设置的样式显示分割线。<br/>2. 当textDivider设置为null时,不显示分割线。 |
386
387### divider<sup>18+</sup>
388
389divider(textDivider: Optional\<DividerOptions | null>)
390
391设置分割线样式,不设置该属性则按“默认值”展示分割线。与[divider<sup>12+</sup>](#divider12)相比,textDivider参数新增了对undefined类型的支持。
392
393[DividerOptions](#divideroptions12对象说明)中startMargin + endMargin 超过组件宽度后,startMargin和endMargin会被置0。
394
395**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
396
397**系统能力:** SystemCapability.ArkUI.ArkUI.Full
398
399**参数:**
400
401| 参数名 | 类型    | 必填 | 说明                                                                  |
402| ------ | ------- | ---- | --------------------------------------------------------------------- |
403| textDivider | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<[DividerOptions](#divideroptions12对象说明) \| null> | 是   | 默认值:<br/>{<br/>strokeWidth: '2px', <br/>startMargin: 0, <br/>endMargin: 0, <br/>color: '#33000000'<br/>}<br/>1. 当textDivider的值为undefined时,使用默认值。<br/>2. 当textDivider设置为有效的[DividerOptions](#divideroptions12对象说明)时,按设置的样式显示分割线。<br/>3. 当textDivider设置为null时,不显示分割线。 |
404
405### gradientHeight<sup>12+</sup>
406
407gradientHeight(value: Dimension)
408
409设置渐隐效果的高度。若未设置该属性,则显示默认渐隐效果。
410
411**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
412
413**系统能力:** SystemCapability.ArkUI.ArkUI.Full
414
415**参数:**
416
417| 参数名 | 类型    | 必填 | 说明                                                         |
418| ------ | ------- | ---- | ------------------------------------------------------------ |
419| value  | [Dimension](ts-types.md#dimension10) | 是   | 内容区上下边缘的渐隐高度。<br/>默认值:36vp<br/>取值范围:[0, +∞),支持百分比。<br/>**说明:**<br/>1. value设置为百分比时,100%为TextPicker高度的一半。<br/>2. value设置为0时不显示渐隐效果。<br/>3. value设置为数字且超过TextPicker高度的一半时,使用默认值。<br/>4. 当value的值为负数时,使用默认值。 |
420
421### gradientHeight<sup>18+</sup>
422
423gradientHeight(height: Optional\<Dimension>)
424
425设置渐隐效果的高度。若未设置该属性,则显示默认渐隐效果。与[gradientHeight<sup>12+</sup>](#gradientheight12)相比,height参数新增了对undefined类型的支持。
426
427**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
428
429**系统能力:** SystemCapability.ArkUI.ArkUI.Full
430
431**参数:**
432
433| 参数名 | 类型    | 必填 | 说明                                                         |
434| ------ | ------- | ---- | ------------------------------------------------------------ |
435| height  | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<[Dimension](ts-types.md#dimension10)> | 是   | 内容区上下边缘的渐隐高度。<br/>默认值:36vp<br/>取值范围:[0, +∞),支持百分比。<br/>**说明:**<br/>1. height设置为百分比时,100%为TextPicker高度的一半。<br/>2. height设置为0时不显示渐隐效果。<br/>3. height设置为数字且超过TextPicker高度的一半时,使用默认值。<br/>4. 当height的值为undefined或负数时,使用默认值。 |
436
437### disableTextStyleAnimation<sup>15+</sup>
438
439disableTextStyleAnimation(disabled: boolean)
440
441设置是否关闭滑动过程中文本样式变化的动效。
442
443**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。
444
445**系统能力:** SystemCapability.ArkUI.ArkUI.Full
446
447**参数:**
448
449| 参数名 | 类型    | 必填 | 说明                                                         |
450| ------ | ------- | ---- | ------------------------------------------------------------ |
451| disabled  | boolean | 是   | 是否关闭滑动过程中文本样式变化的动效。<br/>- true:关闭文本样式变化动效。<br/>- false:不关闭文本样式变化动效。<br/>默认值:false<br />**说明:**<br/>设置为true时,滑动过程中无字号、字重、字体颜色等变化动效,且文本均显示为[defaultTextStyle](#defaulttextstyle15)属性设置的样式。如未设置[defaultTextStyle](#defaulttextstyle15),则显示为[Text](ts-basic-components-text.md)组件默认样式。|
452
453### defaultTextStyle<sup>15+</sup>
454
455defaultTextStyle(style: TextPickerTextStyle)
456
457设置关闭滑动过程中文本样式变化的动效时,各个选项的文本样式。仅当[disableTextStyleAnimation](#disabletextstyleanimation15)为true时生效。
458
459**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。
460
461**系统能力:** SystemCapability.ArkUI.ArkUI.Full
462
463**参数:**
464
465| 参数名 | 类型                                                         | 必填 | 说明                                                         |
466| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
467| style  | [TextPickerTextStyle](#textpickertextstyle15类型说明) | 是   | 设置关闭滑动过程中文本样式变化的动效时,各个选项的文本样式。<br/>默认值:与[Text](ts-basic-components-text.md)组件默认值相同。 |
468
469>  **说明:**
470>
471>  开启触控反馈时,需要在工程的src/main/module.json5文件的"module"内配置requestPermissions字段开启振动权限,配置如下:
472>  ```json
473>  "requestPermissions": [
474>  {
475>   "name": "ohos.permission.VIBRATE",
476>  }
477>  ]
478>  ```
479
480### enableHapticFeedback<sup>18+</sup>
481
482enableHapticFeedback(enable: Optional\<boolean>)
483
484设置是否开启触控反馈。
485
486**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
487
488**系统能力:** SystemCapability.ArkUI.ArkUI.Full
489
490**参数:**
491
492| 参数名 | 类型                                          | 必填  | 说明                                                                                  |
493| ------ | --------------------------------------------- |-----|-------------------------------------------------------------------------------------|
494| enable  | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<boolean> | 是   | 设置是否开启触控反馈。<br/>- true:开启触控反馈。<br/>- false:不开启触控反馈。<br/>默认值:true<br/>设置为true后,其生效情况取决于系统的硬件是否支持。 |
495
496>  **说明:**
497>
498>  开启触控反馈时,需要在工程的src/main/module.json5文件的"module"内配置requestPermissions字段开启振动权限,配置如下:
499>  ```json
500>  "requestPermissions": [
501>  {
502>   "name": "ohos.permission.VIBRATE",
503>  }
504>  ]
505>  ```
506
507### digitalCrownSensitivity<sup>18+</sup>
508digitalCrownSensitivity(sensitivity: Optional\<CrownSensitivity>)
509
510设置表冠灵敏度。
511
512**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
513
514**系统能力:** SystemCapability.ArkUI.ArkUI.Full
515
516**参数:**
517
518| 参数名   | 类型                                     | 必填   | 说明                      |
519| ----- | ---------------------------------------- | ---- | ------------------------- |
520| sensitivity | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<[CrownSensitivity](ts-appendix-enums.md#crownsensitivity18)> | 是    | 表冠响应灵敏度。<br/>默认值:CrownSensitivity.MEDIUM,响应速度适中。                     |
521
522>  **说明:**
523>
524>  用于圆形屏幕的穿戴设备。组件响应[表冠事件](ts-universal-events-crown.md),需要先获取焦点。
525
526### selectedBackgroundStyle<sup>20+</sup>
527selectedBackgroundStyle(style: Optional\<PickerBackgroundStyle>)
528
529设置选中项的背景样式。
530
531**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
532
533**系统能力:** SystemCapability.ArkUI.ArkUI.Full
534
535**参数:**
536
537| 参数名   | 类型                                     | 必填   | 说明                      |
538| ----- | ---------------------------------------- | ---- | ------------------------- |
539| style | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<[PickerBackgroundStyle](#pickerbackgroundstyle20)> | 是    | 选中项背景的颜色和边框圆角半径,多列模式时会同时设置所有列的选中项背景的颜色和圆角半径。<br/>默认值:<br/>{ <br/>color: $r('sys.color.comp_background_tertiary'),<br/>borderRadius: $r('sys.float.corner_radius_level12')<br/>}|
540
541## 事件
542
543除支持[通用事件](ts-component-general-events.md)外,还支持以下事件:
544
545### onChange
546
547onChange(callback:&nbsp;(value:&nbsp;string&nbsp;\|&nbsp;string[],&nbsp;index:&nbsp;number&nbsp;\|&nbsp;number[])&nbsp;=&gt;&nbsp;void)
548
549滑动TextPicker文本内容后,选项归位至选中项位置时,触发该回调。不能通过双向绑定的状态变量触发。当显示文本或图片加文本列表时,value值为选中项中的文本值,当显示图片列表时,value值为空。
550
551回调会在滑动动画结束后触发,如果需要快速获取索引值变化,建议使用[onEnterSelectedArea](#onenterselectedarea18)接口。
552
553**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
554
555**系统能力:** SystemCapability.ArkUI.ArkUI.Full
556
557**参数:**
558
559| 参数名 | 类型                                       | 必填 | 说明                                              |
560| ------ | ------------------------------------------ | ---- | ------------------------------------------------- |
561| value  | string&nbsp;\|&nbsp;string[]<sup>10+</sup> | 是   | 当前选中项的文本。多列数据选择器的value为数组类型。   |
562| index  | number&nbsp;\|&nbsp;number[]<sup>10+</sup> | 是   | 当前选中项的索引值,索引从0开始。多列数据选择器的index为数组类型。 |
563
564### onChange<sup>18+</sup>
565
566onChange(callback: Optional\<OnTextPickerChangeCallback>)
567
568滑动TextPicker文本内容后,选项归位至选中项位置时,触发该回调。不能通过双向绑定的状态变量触发。当显示文本或图片加文本列表时,value值为选中项中的文本值,当显示图片列表时,value值为空。与[onChange](#onchange)相比,callback参数新增了对undefined类型的支持。
569
570回调会在滑动动画结束后触发,如果需要快速获取索引值变化,建议使用[onEnterSelectedArea](#onenterselectedarea18)接口。
571
572**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
573
574**系统能力:** SystemCapability.ArkUI.ArkUI.Full
575
576**参数:**
577
578| 参数名   | 类型                                                         | 必填 | 说明                                                         |
579| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
580| callback | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<[OnTextPickerChangeCallback](#ontextpickerchangecallback18)> | 是   | 滑动选中TextPicker文本内容后,触发的回调。<br/>当callback的值为undefined时,不使用回调函数。 |
581
582### onScrollStop<sup>14+</sup>
583
584onScrollStop(callback: TextPickerScrollStopCallback)
585
586文本选择器的选项列滑动停止时触发该事件。
587
588手指拖动选项列触发的滑动,手指离开屏幕且滑动停止时会触发该事件。
589
590**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
591
592**系统能力:** SystemCapability.ArkUI.ArkUI.Full
593
594**参数:**
595
596| 参数名 | 类型                                       | 必填 | 说明                                              |
597| ------ | ------------------------------------------ | ---- | ------------------------------------------------- |
598| callback | [TextPickerScrollStopCallback](#textpickerscrollstopcallback14) | 是   | 文本选择器的选项列滑动停止时触发该事件。 |
599
600### onScrollStop<sup>18+</sup>
601
602onScrollStop(callback: Optional\<TextPickerScrollStopCallback>)
603
604文本选择器的选项列滑动停止时触发该事件。与[onScrollStop<sup>14+</sup>](#onscrollstop14)相比,callback参数新增了对undefined类型的支持。
605
606手指拖动选项列触发的滑动,手指离开屏幕且滑动停止时会触发该事件。
607
608**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
609
610**系统能力:** SystemCapability.ArkUI.ArkUI.Full
611
612**参数:**
613
614| 参数名 | 类型                                       | 必填 | 说明                                              |
615| ------ | ------------------------------------------ | ---- | ------------------------------------------------- |
616| callback | [Optional](ts-universal-attributes-custom-property.md#optionalt12)\<[TextPickerScrollStopCallback](#textpickerscrollstopcallback14)> | 是   | 文本选择器的选项列滑动停止时触发该事件。<br/>当callback的值为undefined时,不使用回调函数。 |
617
618### onEnterSelectedArea<sup>18+</sup>
619
620onEnterSelectedArea(callback: TextPickerEnterSelectedAreaCallback)
621
622滑动TextPicker过程中,选项进入分割线区域内(当前列的滑动距离超过选中项高度的一半)时,触发该回调。
623
624>  **说明:**
625>
626> - 与[onChange](#onchange)事件的差别在于,该事件的触发时机早于[onChange](#onchange)事件。
627>
628> - 在多列联动场景中,不建议使用该回调,由于该回调标识的是滑动过程中选项进入分割线区域内的节点,而跟随变化的选项并不涉及滑动,因此,回调的返回值中,仅当前滑动列的值会正常变化,其余未滑动列的值保持不变。
629
630**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
631
632**系统能力:** SystemCapability.ArkUI.ArkUI.Full
633
634**参数:**
635
636| 参数名   | 类型                       | 必填 | 说明                                       |
637| -------- | -------------------------- | ---- | ------------------------------------------ |
638| callback | [TextPickerEnterSelectedAreaCallback](#textpickerenterselectedareacallback18) | 是   | 滑动TextPicker过程中,选项进入分割线区域时触发的回调。 |
639
640### onAccept<sup>(deprecated) </sup>
641
642onAccept(callback: (value: string, index: number) => void)
643
644点击弹窗中的“确定”按钮时触发该回调。该事件仅在[文本滑动选择器弹窗](ts-methods-textpicker-dialog.md)中生效。
645
646从API version 10开始废弃。
647
648**系统能力:** SystemCapability.ArkUI.ArkUI.Full
649
650**参数:**
651
652| 参数名 | 类型   | 必填 | 说明                 |
653| ------ | ------ | ---- | -------------------- |
654| value  | string | 是   | 当前选中项的文本。   |
655| index  | number | 是   | 当前选中项的索引值,索引从0开始。 |
656
657### onCancel<sup>(deprecated) </sup>
658
659onCancel(callback: () => void)
660
661点击弹窗中的“取消”按钮时触发该回调。该事件仅在[文本滑动选择器弹窗](ts-methods-textpicker-dialog.md)中生效。
662
663从API version 10开始废弃。
664
665**系统能力:** SystemCapability.ArkUI.ArkUI.Full
666
667**参数:**
668| 参数名 | 类型   | 必填 | 说明                 |
669| ------ | ------ | ---- | -------------------- |
670| callback  | () => void | 是   | 点击弹窗中的“取消”按钮时触发该回调。   |
671
672## TextPickerTextStyle<sup>15+</sup>类型说明
673
674文本样式选项,继承自[PickerTextStyle](ts-picker-common.md#pickertextstyle对象说明)。
675
676**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。
677
678**系统能力:** SystemCapability.ArkUI.ArkUI.Full
679
680| 名称   | 类型                                     | 只读 | 可选 | 说明                      |
681| ----- | ---------------------------------------- | ---- | ------------------------- | ------------------------- |
682| minFontSize | number \| string \| [Resource](ts-types.md#resource) | 否 | 是 | 文本最小显示字号,与maxFontSize配合使用。当设置minFontSize和maxFontSize时,font中的size将不生效。默认最大行数为1,自适应高度方式为MIN_FONT_SIZE_FIRST。详细规则请参考Text组件的[minFontSize](ts-basic-components-text.md#minfontsize)属性。 |
683| maxFontSize  | number \| string \| [Resource](ts-types.md#resource) | 否   | 是   | 文本最大显示字号。详细规则请参考Text组件的[maxFontSize](ts-basic-components-text.md#maxfontsize)属性。                     |
684| overflow | [TextOverflow](ts-appendix-enums.md#textoverflow) | 否 | 是 | 文本截断方式。当设置为MARQUEE时,该属性不生效。详细规则请参考Text组件的[textOverflow](ts-basic-components-text.md#textoverflow)属性。 |
685
686## OnTextPickerChangeCallback<sup>18+</sup>
687
688type OnTextPickerChangeCallback = (selectItem: string | string[], index: number | number[]) => void
689
690定义触发onChange事件的回调类型。
691
692**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
693
694**系统能力:** SystemCapability.ArkUI.ArkUI.Full
695
696**参数:**
697
698| 参数名     | 类型                                       | 必填 | 说明                                                         |
699| ---------- | ------------------------------------------ | ---- | ------------------------------------------------------------ |
700| selectItem | string&nbsp;\|&nbsp;string[]<sup>10+</sup> | 是   | 当前选中项的文本。多列数据选择器的selectItem为数组类型。<br/>**说明:**<br/>当选择器内容为文本或图文混排时,selectItem值为选中项中的文本值;当选择器内容为图片时,selectItem值为空。 |
701| index      | number&nbsp;\|&nbsp;number[]<sup>10+</sup> | 是   | 当前选中项的索引值,索引从0开始。多列数据选择器的index为数组类型。 |
702
703## TextPickerScrollStopCallback<sup>14+</sup>
704
705type TextPickerScrollStopCallback = (value: string | string[], index: number | number[]) => void
706
707定义触发onScrollStop事件的回调类型。
708
709**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
710
711**系统能力:** SystemCapability.ArkUI.ArkUI.Full
712
713**参数:**
714
715| 参数名 | 类型                                       | 必填 | 说明                                              |
716| ------ | ------------------------------------------ | ---- | ------------------------------------------------- |
717| value  | string&nbsp;\|&nbsp;string[] | 是   | 当前选中项的文本。多列数据选择器的value为数组类型。<br/>**说明:**<br/>当选择器内容为文本或图文混排时,value值为选中项中的文本值;当选择器内容为图片时,value值为空。 |
718| index  | number&nbsp;\|&nbsp;number[] | 是   | 当前选中项的索引值,索引从0开始。多列数据选择器的index为数组类型。 |
719
720## TextPickerEnterSelectedAreaCallback<sup>18+</sup>
721
722type TextPickerEnterSelectedAreaCallback = (value: string | string[], index: number | number[]) => void
723
724定义触发onEnterSelectedArea事件的回调类型。
725
726**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
727
728**系统能力:** SystemCapability.ArkUI.ArkUI.Full
729
730**参数:**
731
732| 参数名 | 类型                                       | 必填 | 说明                                              |
733| ------ | ------------------------------------------ | ---- | ------------------------------------------------- |
734| value  | string&nbsp;\|&nbsp;string[] | 是   | 当前选中项的文本。多列数据选择器的value为数组类型。<br/>**说明:**<br/>当选择器内容为文本或图文混排时,value值为选中项中的文本值;当选择器内容为图片时,value值为空。 |
735| index  | number&nbsp;\|&nbsp;number[] | 是   | 当前选中项的索引值,索引从0开始。多列数据选择器的index为数组类型。 |
736
737## PickerBackgroundStyle<sup>20+</sup>
738
739选择器选中项的背景样式,包括选中项的背景颜色和边框圆角半径。
740
741**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
742
743**系统能力:** SystemCapability.ArkUI.ArkUI.Full
744
745| 名称 | 类型                                       | 只读 | 可选 | 说明                                              |
746| ------ | ------------------------------------- | ---- | ------------------------------------------------- | ------------------------------------------------- |
747| color  | [ResourceColor](ts-types.md#resourcecolor) | 否  | 是  | 选中项的背景颜色。<br/>默认值:'sys.color.comp_background_tertiary'。   |
748| borderRadius  | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12) &nbsp;\|&nbsp; [BorderRadiuses](ts-types.md#borderradiuses9) &nbsp;\|&nbsp; [LocalizedBorderRadiuses](ts-types.md#localizedborderradiuses12) | 否  | 是  | 选中项的边框圆角半径。<br/>默认值:{ value:24, unit:LengthUnit.VP },即四个圆角半径均为24VP。<br/>**说明:**<br/>1. [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12)类型的value参数同时作用于四个圆角半径大小,unit参数用于设置单位。<br/>2. [BorderRadiuses](ts-types.md#borderradiuses9)类型可以设置四个不同值的圆角半径,所有单位固定为VP。<br/>3. [LocalizedBorderRadiuses](ts-types.md#localizedborderradiuses12)类型可以设置四个不同值的圆角半径,并且可以单独设置每个圆角的单位。 |
749## 示例
750
751### 示例1(设置选择器列数)
752
753该示例通过配置range实现单列数据选择器和多列数据选择器,并使用columnWidths调整每一列的宽度。
754
755```ts
756// xxx.ets
757import { LengthMetrics } from '@kit.ArkUI';
758
759class Bottom {
760  bottom: number = 50;
761}
762
763let bott: Bottom = new Bottom();
764@Entry
765@Component
766struct TextPickerExample {
767  private select: number = 1;
768  private apfruits: string[] = ['apple1', 'apple2', 'apple3', 'apple4'];
769  private orfruits: string[] = ['orange1', 'orange2', 'orange3', 'orange4'];
770  private pefruits: string[] = ['peach1', 'peach2', 'peach3', 'peach4'];
771  private multi: string[][] = [this.apfruits, this.orfruits, this.pefruits];
772  private cascade: TextCascadePickerRangeContent[] = [
773    {
774      text: '辽宁省',
775      children: [{ text: '沈阳市', children: [{ text: '沈河区' }, { text: '和平区' }, { text: '浑南区' }] },
776        { text: '大连市', children: [{ text: '中山区' }, { text: '金州区' }, { text: '长海县' }] }]
777    },
778    {
779      text: '吉林省',
780      children: [{ text: '长春市', children: [{ text: '南关区' }, { text: '宽城区' }, { text: '朝阳区' }] },
781        { text: '四平市', children: [{ text: '铁西区' }, { text: '铁东区' }, { text: '梨树县' }] }]
782    },
783    {
784      text: '黑龙江省',
785      children: [{ text: '哈尔滨市', children: [{ text: '道里区' }, { text: '道外区' }, { text: '南岗区' }] },
786        { text: '牡丹江市', children: [{ text: '东安区' }, { text: '西安区' }, { text: '爱民区' }] }]
787    }
788  ];
789  private singleColumnWidths: LengthMetrics[] = [
790    LengthMetrics.percent(50)
791  ];
792
793  private multipleColumnWidths: LengthMetrics[] = [
794    LengthMetrics.vp(100),
795    LengthMetrics.vp(200),
796    LengthMetrics.vp(100)
797  ];
798
799  private cascadeColumnWidths: LengthMetrics[] = [
800    LengthMetrics.percent(20),
801    LengthMetrics.percent(30),
802    LengthMetrics.percent(50)
803  ];
804  build() {
805    Column() {
806
807      TextPicker({ range: this.apfruits, selected: this.select, columnWidths: this.singleColumnWidths })
808        .onChange((value: string | string[], index: number | number[]) => {
809          console.info('Picker item changed, value: ' + value + ', index: ' + index);
810        })
811        .onScrollStop((value: string | string[], index: number | number[]) => {
812          console.info('Picker scroll stopped, value: ' + value + ', index: ' + index);
813        }).margin(bott)
814        .onEnterSelectedArea((value: string | string[], index: number | number[]) => {
815          console.info('Picker item enter selected area, value: ' + value + ', index: ' + index);
816        })
817
818      TextPicker({ range: this.multi, columnWidths: this.multipleColumnWidths })
819        .onChange((value: string | string[], index: number | number[]) => {
820          console.info('TextPicker 多列:onChange ' + JSON.stringify(value) + ', ' + 'index: ' + JSON.stringify(index));
821        })
822        .onScrollStop((value: string | string[], index: number | number[]) => {
823          console.info('TextPicker 多列:onScrollStop ' + JSON.stringify(value) + ', ' + 'index: ' + JSON.stringify(index));
824        }).margin(bott)
825        .onEnterSelectedArea((value: string | string[], index: number | number[]) => {
826          console.info('TextPicker 多列:onEnterSelectedArea ' + JSON.stringify(value) + ', ' + 'index: ' + JSON.stringify(index));
827        })
828
829      TextPicker({ range: this.cascade, columnWidths: this.cascadeColumnWidths })
830        .onChange((value: string | string[], index: number | number[]) => {
831          console.info('TextPicker 多列联动:onChange ' + JSON.stringify(value) + ', ' + 'index: ' + JSON.stringify(index));
832        })
833        .onScrollStop((value: string | string[], index: number | number[]) => {
834          console.info('TextPicker 多列联动:onScrollStop ' + JSON.stringify(value) + ', ' + 'index: ' + JSON.stringify(index));
835        })
836        .onEnterSelectedArea((value: string | string[], index: number | number[]) => {
837          console.info('TextPicker 多列联动:onEnterSelectedArea ' + JSON.stringify(value) + ', ' + 'index: ' + JSON.stringify(index));
838        })
839    }
840  }
841}
842```
843
844![textpicker](figures/textpicker.png)
845
846### 示例2(设置文本样式)
847
848该示例使用[disappearTextStyle](#disappeartextstyle10)、[textStyle](#textstyle10)、[selectedTextStyle](#selectedtextstyle10)设置文本选择器中的文本样式。
849
850```ts
851// xxx.ets
852@Entry
853@Component
854struct TextPickerExample {
855  private select: number = 0;
856  private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4'];
857
858  build() {
859    Column() {
860      TextPicker({
861        range: this.fruits,
862        selected: this.select,
863        value: this.fruits[this.select]
864      })
865        .onChange((value: string | string[], index: number | number[]) => {
866          console.info('Picker item changed, value: ' + value + ', index: ' + index);
867        })
868        .onScrollStop((value: string | string[], index: number | number[]) => {
869          console.info('Picker scroll stopped, value: ' + value + ', index: ' + index);
870        })
871        .disappearTextStyle({ color: Color.Red, font: { size: 15, weight: FontWeight.Lighter } })
872        .textStyle({ color: Color.Black, font: { size: 20, weight: FontWeight.Normal } })
873        .selectedTextStyle({ color: Color.Blue, font: { size: 30, weight: FontWeight.Bolder } })
874        .defaultPickerItemHeight(50)
875        .canLoop(false)
876        .selectedIndex(2)
877    }.width('100%').height('100%')
878  }
879}
880```
881
882![textpicker](figures/textpicker1.gif)
883
884### 示例3(设置无分割线样式)
885
886该示例通过配置divider为null实现无分割线样式的文本选择器。
887
888```ts
889// xxx.ets
890@Entry
891@Component
892struct TextPickerExample {
893  private select: number = 0;
894  private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4'];
895
896  build() {
897    Column() {
898      TextPicker({ range: this.fruits, selected: this.select })
899        .onChange((value: string | string[], index: number | number[]) => {
900          console.info('Picker item changed, value: ' + value + ', index: ' + index);
901        })
902        .onScrollStop((value: string | string[], index: number | number[]) => {
903          console.info('Picker scroll stopped, value: ' + value + ', index: ' + index);
904        })
905        .disappearTextStyle({color: Color.Red, font: {size: 15, weight: FontWeight.Lighter}})
906        .textStyle({color: Color.Black, font: {size: 20, weight: FontWeight.Normal}})
907        .selectedTextStyle({color: Color.Blue, font: {size: 30, weight: FontWeight.Bolder}})
908        .divider(null)
909    }.width('100%').height('100%')
910  }
911}
912```
913![textpicker](figures/textpicker2.gif)
914
915### 示例4(设置分割线样式)
916
917该示例通过配置divider的DividerOptions设置文本选择器的分割线样式。
918
919```ts
920// xxx.ets
921@Entry
922@Component
923struct TextPickerExample {
924  private select: number = 1;
925  private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4'];
926
927  build() {
928    Column() {
929      TextPicker({ range: this.fruits, selected: this.select })
930        .onChange((value: string | string[], index: number | number[]) => {
931          console.info('Picker item changed, value: ' + value + ', index: ' + index);
932        })
933        .onScrollStop((value: string | string[], index: number | number[]) => {
934          console.info('Picker scroll stopped, value: ' + value + ', index: ' + index);
935        })
936        .disappearTextStyle({color: Color.Red, font: {size: 15, weight: FontWeight.Lighter}})
937        .textStyle({color: Color.Black, font: {size: 20, weight: FontWeight.Normal}})
938        .selectedTextStyle({color: Color.Blue, font: {size: 30, weight: FontWeight.Bolder}})
939        .divider({
940          strokeWidth: 10,
941          color: Color.Red,
942          startMargin: 10,
943          endMargin: 20
944        } as DividerOptions)
945    }.width('100%').height('100%')
946  }
947}
948```
949![textpicker](figures/textpicker3.gif)
950
951### 示例5(设置渐隐效果)
952
953该示例通过配置gradientHeight设置文本选择器的渐隐效果高度。
954
955```ts
956// xxx.ets
957@Entry
958@Component
959struct TextPickerExample {
960  private select: number = 1;
961  private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4'];
962
963  build() {
964    Column() {
965      TextPicker({ range: this.fruits, selected: this.select })
966        .onChange((value: string | string[], index: number | number[]) => {
967          console.info('Picker item changed, value: ' + value + ', index: ' + index);
968        })
969        .onScrollStop((value: string | string[], index: number | number[]) => {
970          console.info('Picker scroll stopped, value: ' + value + ', index: ' + index);
971        })
972        .disappearTextStyle({color: Color.Red, font: {size: 15, weight: FontWeight.Lighter}})
973        .textStyle({color: Color.Black, font: {size: 20, weight: FontWeight.Normal}})
974        .selectedTextStyle({color: Color.Blue, font: {size: 30, weight: FontWeight.Bolder}})
975        .gradientHeight(100)
976    }.width('100%').height('100%')
977  }
978}
979```
980
981![textpicker](figures/textpicker4.gif)
982
983### 示例6(设置选择项高度)
984
985该示例通过配置defaultPickerItemHeight设置选择项的高度。
986
987```ts
988// xxx.ets
989@Entry
990@Component
991struct TextPickerExample {
992  private select: number = 1;
993  private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4'];
994
995  build() {
996    Column() {
997      TextPicker({ range: this.fruits, selected: this.select })
998        .defaultPickerItemHeight(60)
999        .onChange((value: string | string[], index: number | number[]) => {
1000          console.info('Picker item changed, value: ' + value + ', index: ' + index);
1001        })
1002        .onScrollStop((value: string | string[], index: number | number[]) => {
1003          console.info('Picker scroll stopped, value: ' + value + ', index: ' + index);
1004        })
1005    }.width('100%').height('100%')
1006  }
1007}
1008```
1009
1010![textpicker](figures/TextPickerDemo6.png)
1011
1012
1013### 示例7(设置循环滚动)
1014
1015该示例通过配置[canLoop](#canloop10)设置文本选择器是否循环滚动。
1016
1017```ts
1018// xxx.ets
1019@Entry
1020@Component
1021struct TextPickerExample {
1022  @State isLoop: boolean = false;
1023  private select: number = 1;
1024  private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4'];
1025
1026  build() {
1027    Column() {
1028      TextPicker({ range: this.fruits, selected: this.select })
1029        .onChange((value: string | string[], index: number | number[]) => {
1030          console.info('Picker item changed, value: ' + value + ', index: ' + index);
1031        })
1032        .onScrollStop((value: string | string[], index: number | number[]) => {
1033          console.info('Picker scroll stopped, value: ' + value + ', index: ' + index);
1034        })
1035        .canLoop(this.isLoop)
1036
1037      Row() {
1038        Text('循环滚动').fontSize(20)
1039
1040        Toggle({ type: ToggleType.Switch, isOn: false })
1041          .onChange((isOn: boolean) => {
1042            this.isLoop = isOn;
1043          })
1044      }.position({ x: '60%', y: '40%' })
1045
1046    }.width('100%')
1047  }
1048}
1049```
1050
1051![textpicker](figures/TextPickerDemo7.gif)
1052
1053### 示例8(设置选中项索引值)
1054
1055该示例通过配置selectedIndex设置默认选中项的索引值。
1056
1057```ts
1058// xxx.ets
1059@Entry
1060@Component
1061struct TextPickerExample {
1062  private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4'];
1063
1064  build() {
1065    Column() {
1066      TextPicker({ range: this.fruits, selected: 1 })
1067        .selectedIndex(2)
1068        .onChange((value: string | string[], index: number | number[]) => {
1069          console.info('Picker item changed, value: ' + value + ', index: ' + index);
1070        })
1071        .onScrollStop((value: string | string[], index: number | number[]) => {
1072          console.info('Picker scroll stopped, value: ' + value + ', index: ' + index);
1073        })
1074    }.width('100%').height('100%')
1075  }
1076}
1077```
1078
1079![textpicker](figures/TextPickerDemo8.png)
1080
1081### 示例9(设置关闭文本样式变化动效与对应文本样式)
1082
1083该示例通过配置[disableTextStyleAnimation](#disabletextstyleanimation15)、[defaultTextStyle](#defaulttextstyle15)实现关闭文本选择器文本样式变化的动效,并设置文本样式。
1084
1085```ts
1086// xxx.ets
1087@Entry
1088@Component
1089struct TextPickerExample {
1090  private select: number = 1;
1091  private fruits: string[] = ['AAAAA', 'BBBBBBBBBBBBB', 'CCCC', 'DDDDDDDD', 'EEE'];
1092
1093  build() {
1094    Column() {
1095      TextPicker({
1096        range: this.fruits,
1097        selected: this.select,
1098        value: this.fruits[this.select]
1099      })
1100        .disableTextStyleAnimation(true)
1101        .margin({ bottom: 30 })
1102      TextPicker({
1103        range: this.fruits,
1104        selected: this.select,
1105        value: this.fruits[this.select]
1106      })
1107        .disableTextStyleAnimation(true)
1108        .defaultTextStyle({ minFontSize: 18, maxFontSize: 28, overflow: TextOverflow.Ellipsis })
1109    }.width('100%').height('100%')
1110  }
1111}
1112```
1113
1114![textpicker](figures/TextPickerDemo9.jpeg)
1115
1116### 示例10(设置选中项背景样式)
1117
1118该示例通过配置[selectedBackgroundStyle](#selectedbackgroundstyle20)实现文本选择器选中项的背景样式。
1119
1120```ts
1121import { LengthUnit } from '@kit.ArkUI';
1122
1123// xxx.ets
1124@Entry
1125@Component
1126struct TextPickerExample {
1127  private showText1: string [] =
1128    ["Text1", "Text1", "Text1", "Text1"]
1129  private showText2: string[] [] =
1130    [
1131      ["Text2", "Text2", "Text2", "Text2"],
1132      ["Text3", "Text3", "Text3", "Text3"]
1133    ]
1134
1135  build() {
1136    Column() {
1137      Row() {
1138        TextPicker({ range: this.showText1 })
1139          .selectedBackgroundStyle({
1140            color: "#FFD5D5D5",
1141            borderRadius: { value: 0, unit: LengthUnit.VP }
1142          })
1143        Column()
1144          .width("10%")
1145        TextPicker({ range: this.showText1 })
1146          .selectedBackgroundStyle({
1147            color: "#FFE3F8F9",
1148            borderRadius: {
1149              topStart: { value: 5, unit: LengthUnit.VP },
1150              topEnd: { value: 10, unit: LengthUnit.VP },
1151              bottomStart: { value: 15, unit: LengthUnit.VP },
1152              bottomEnd: { value: 20, unit: LengthUnit.VP },
1153            }
1154          })
1155      }
1156
1157      Row()
1158        .height("10%")
1159      Row() {
1160        TextPicker({ range: this.showText2 })
1161          .selectedBackgroundStyle({
1162            borderRadius: {
1163              topLeft: 8,
1164              topRight: 8,
1165              bottomLeft: 8,
1166              bottomRight: 8
1167            },
1168            color: "#FFFFEEF6"
1169          })
1170      }
1171    }.height("100%")
1172  }
1173}
1174```
1175
1176![textpicker](figures/TextPickerDemo10.gif)
1177
1178### 示例11(设置文本的最大字号、最小字号、超长文本截断方式)
1179
1180该示例通过配置[disappearTextStyle](#disappeartextstyle20)、[textStyle](#textstyle20)和[selectedTextStyle](#selectedtextstyle20),设置文本的颜色、最大字号、最小字号、超长文本截断方式。
1181
1182```ts
1183// xxx.ets
1184@Entry
1185@Component
1186struct TextPickerExample {
1187  private rangeValue: string[] = ['AAAAA', 'BBBBBBBBBBBBB', 'CCCC', 'DDDDDDDD', 'EEEEEEEEEEEEEEE'];
1188
1189  build() {
1190    RelativeContainer() {
1191      TextPicker({
1192        range: this.rangeValue
1193      })
1194        .disappearTextStyle({
1195          color: '#fff52769',
1196          // 设置minFontSize与maxFontSize时,font中的size属性将被忽略。
1197          font: { size: 50 },
1198          minFontSize: 12,
1199          maxFontSize: 18,
1200          overflow: TextOverflow.Ellipsis
1201        })
1202        .textStyle({
1203          color: Color.Orange,
1204          minFontSize: 12,
1205          maxFontSize: 18,
1206          overflow: TextOverflow.MARQUEE
1207        })
1208        .selectedTextStyle({
1209          color: '#ff9eea48',
1210          minFontSize: 12,
1211          maxFontSize: 18,
1212          overflow: TextOverflow.Clip
1213        })
1214        .width('100%')
1215    }
1216    .height('100%')
1217    .width('100%')
1218  }
1219}
1220```
1221
1222![textpicker](figures/TextPickerDemo11.gif)