1# TextPicker 2 3滑动选择文本内容的组件。 4 5> **说明:** 6> 7> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 8 9 10## 子组件 11 12无 13 14 15## 接口 16 17TextPicker(options?: TextPickerOptions) 18 19根据range指定的选择范围创建文本选择器。 20 21**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 22 23**系统能力:** SystemCapability.ArkUI.ArkUI.Full 24 25**参数:** 26 27| 参数名 | 类型 | 必填 | 说明 | 28| ------- | ----------------------------------------------- | ---- | ---------------------- | 29| options | [TextPickerOptions](#textpickeroptions对象说明) | 否 | 配置文本选择器的参数。 | 30 31## TextPickerOptions对象说明 32 33**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 34 35**系统能力:** SystemCapability.ArkUI.ArkUI.Full 36 37| 名称 | 类型 | 必填 | 说明 | 38| -------- | -------- | -------- | -------- | 39| range | string[] \| string[] []<sup>10+</sup> \| [Resource](ts-types.md#resource类型) \|<br/>[TextPickerRangeContent](#textpickerrangecontent10对象说明)[]<sup>10+</sup> \| [TextCascadePickerRangeContent](#textcascadepickerrangecontent10对象说明)[]<sup>10+</sup> | 是 | 选择器的数据选择列表。不可设置为空数组,若设置为空数组,则不显示;若动态变化为空数组,则保持当前正常值显示。<br/>**说明**:单列数据选择器使用string[],Resource,TextPickerRangeContent[]类型。<br/>多列数据选择器使用string[][]类型。 <br/>多列联动数据选择器使用TextCascadePickerRangeContent[]类型。<br/>Resource类型只支持[strarray.json](../../../quick-start/resource-categories-and-access.md#资源组目录)。<br>range的类型及列数不可以动态修改。| 40| selected | number \| number[]<sup>10+</sup> | 否 | 设置默认选中项在数组中的索引值,索引从0开始。<br/>默认值:0 <br/>**说明**:单列数据选择器使用number类型。<br/>多列、多列联动数据选择器使用number[]类型。<br />从API version 10开始,该参数支持[$$](../../../quick-start/arkts-two-way-sync.md)双向绑定变量。| 41| value | string \| string[]<sup>10+</sup> | 否 | 设置默认选中项的值,优先级低于selected。<br/>默认值:第一个元素值<br/>**说明**:只有显示文本列表时该值有效。显示图片或图片加文本的列表时,该值无效。 <br/>单列数据选择器使用string类型。<br/>多列、多列联动数据选择器使用string[]类型。<br />从API version 10开始,该参数支持[$$](../../../quick-start/arkts-two-way-sync.md)双向绑定变量。| 42 43## TextPickerRangeContent<sup>10+</sup>对象说明 44 45**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 46 47**系统能力:** SystemCapability.ArkUI.ArkUI.Full 48 49| 名称 | 类型 | 必填 | 说明 | 50| ---- | ---------------------------------------------------- | ---- | ---------- | 51| icon | string \| [Resource](ts-types.md#resource) | 是 | 图片资源。 icon是string类型时,表示图片存放的路径,例如"/common/hello.png"。 | 52| text | string \| [Resource](ts-types.md#resource) | 否 | 文本信息。<br/>默认值:空字符串<br/>**说明**:如果文本长度大于列宽时,本文被截断。 | 53 54## TextCascadePickerRangeContent<sup>10+</sup>对象说明 55 56**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 57 58**系统能力:** SystemCapability.ArkUI.ArkUI.Full 59 60| 名称 | 类型 | 必填 | 说明 | 61| ------ | -------------------------------------------------------- | ---- | ---------- | 62| text | string \| [Resource](ts-types.md#resource) | 是 | 文本信息。<br/>**说明**:如果文本长度大于列宽时,本文被截断。 | 63| children | [TextCascadePickerRangeContent](#textcascadepickerrangecontent10对象说明)[] | 否 | 联动数据。 | 64## DividerOptions<sup>12+</sup>对象说明 65 66**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 67 68**系统能力:** SystemCapability.ArkUI.ArkUI.Full 69 70| 名称 | 类型 | 必填 | 说明 | 71| ----------- | ------------------------------------ | ---- | ------------------------------------------------------------ | 72| strokeWidth | [Dimension](ts-types.md#dimension10) | 否 | 分割线的线宽(默认单位vp),也可指定单位为px,不支持"百分比"类型。<br/>取值范围:strokeWidth小于0取默认值,最大不得超过列高的一半。<br/>默认值:2.0px | 73| startMargin | [Dimension](ts-types.md#dimension10) | 否 | 分割线与TextPicker侧边起始端的距离(默认单位vp),也可指定单位为px,不支持“百分比”类型。<br/>取值范围:startMargin小于0无效,最大不得超过TextPicker列宽。<br/>默认值:0 | 74| endMargin | [Dimension](ts-types.md#dimension10) | 否 | 分割线与TextPicker侧边结束端的距离(默认单位vp),也可指定单位为px,不支持“百分比”类型。<br/>取值范围:startMargin小于0无效,最大不得超过TextPicker列宽。<br/>默认值:0 | 75| color | [ResourceColor](ts-types.md#resourcecolor) | 否 | 分割线的颜色。<br/>默认值:'#33000000' 76 77## 属性 78 79除支持[通用属性](ts-component-general-attributes.md)外,还支持以下属性: 80 81### defaultPickerItemHeight 82 83defaultPickerItemHeight(value: number | string) 84 85设置Picker各选择项的高度。 86 87**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 88 89**系统能力:** SystemCapability.ArkUI.ArkUI.Full 90 91**参数:** 92 93| 参数名 | 类型 | 必填 | 说明 | 94| ------ | -------------------------- | ---- | ---------------------- | 95| value | number \| string | 是 | Picker各选择项的高度。number类型取值范围:[0, +∞],string类型仅支持number类型取值的字符串形式,例如"56"。<br/>默认值:选中项56vp,非选中项36vp。<br />**说明:**<br />设置该参数后,选中项与非选中项的高度均为所设置的值。 | 96 97### disappearTextStyle<sup>10+</sup> 98 99disappearTextStyle(value: PickerTextStyle) 100 101设置所有选项中最上和最下两个选项的文本颜色、字号、字体粗细。 102 103**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 104 105**系统能力:** SystemCapability.ArkUI.ArkUI.Full 106 107**参数:** 108 109| 参数名 | 类型 | 必填 | 说明 | 110| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 111| value | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 是 | 所有选项中最上和最下两个选项的文本颜色、字号、字体粗细。<br/>默认值:<br/>{<br/>color: '#ff182431',<br/>font: {<br/>size: '14fp', <br/>weight: FontWeight.Regular<br/>}<br/>} | 112 113### textStyle<sup>10+</sup> 114 115textStyle(value: PickerTextStyle) 116 117设置所有选项中除了最上、最下及选中项以外的文本颜色、字号、字体粗细。 118 119**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 120 121**系统能力:** SystemCapability.ArkUI.ArkUI.Full 122 123**参数:** 124 125| 参数名 | 类型 | 必填 | 说明 | 126| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 127| value | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 是 | 所有选项中除了最上、最下及选中项以外的文本颜色、字号、字体粗细。<br/>默认值:<br/>{<br/>color: '#ff182431',<br/>font: {<br/>size: '16fp', <br/>weight: FontWeight.Regular<br/>}<br/>} | 128 129### selectedTextStyle<sup>10+</sup> 130 131selectedTextStyle(value: PickerTextStyle) 132 133设置选中项的文本颜色、字号、字体粗细。 134 135**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 136 137**系统能力:** SystemCapability.ArkUI.ArkUI.Full 138 139**参数:** 140 141| 参数名 | 类型 | 必填 | 说明 | 142| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 143| value | [PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明) | 是 | 选中项的文本颜色、字号、字体粗细。<br/>默认值:<br/>{<br/>color: '#ff007dff',<br/>font: {<br/>size: '20vp', <br/>weight: FontWeight.Medium<br/>}<br/>} | 144 145### selectedIndex<sup>10+</sup> 146 147selectedIndex(value: number | number[]) 148 149设置默认选中项在数组中的索引值,优先级高于options中的选中值。单列数据选择器使用number类型。多列、多列联动数据选择器使用number[]类型。 150 151**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 152 153**系统能力:** SystemCapability.ArkUI.ArkUI.Full 154 155**参数:** 156 157| 参数名 | 类型 | 必填 | 说明 | 158| ------ | ---------------------------- | ---- | ---------------------------- | 159| value | number \| number[] | 是 | 默认选中项在数组中的索引值,索引从0开始。<br/>默认值:0 <br/> | 160 161### canLoop<sup>10+</sup> 162 163canLoop(value: boolean) 164 165设置是否可循环滚动。 166 167**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 168 169**系统能力:** SystemCapability.ArkUI.ArkUI.Full 170 171**参数:** 172 173| 参数名 | 类型 | 必填 | 说明 | 174| ------ | ------- | ---- | ------------------------------------------------------------ | 175| value | boolean | 是 | 是否可循环滚动。<br/>true:可循环,false:不可循环。<br/>默认值:true | 176 177### divider<sup>12+</sup> 178 179divider(value: DividerOptions | null) 180 181设置分割线样式,不设置该属性则按“默认值”展示分割线。 182 183startMargin + endMargin 超过组件宽度后startMargin和endMargin会被置0。 184 185**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 186 187**系统能力:** SystemCapability.ArkUI.ArkUI.Full 188 189**参数:** 190| 参数名 | 类型 | 必填 | 说明 | 191| ------ | ------- | ---- | --------------------------------------------------------------------- | 192| value | [DividerOptions](#divideroptions12对象说明) \| null | 是 | 1.设置DividerOptions,则按设置的样式显示分割线。<br/>默认值:<br/>{<br/>strokeWidth: '2px', <br/>startMargin: 0, <br/>endMargin: 0, <br/>color: '#33000000'<br/>}<br/>2.设置为null不显示分割线。 | 193 194### gradientHeight<sup>12+</sup> 195 196gradientHeight(value: Dimension) 197 198设置渐隐效果高度,不设置该属性则显示默认渐隐效果。 199 200**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 201 202**系统能力:** SystemCapability.ArkUI.ArkUI.Full 203 204**参数:** 205 206| 参数名 | 类型 | 必填 | 说明 | 207| ------ | ------- | ---- | ------------------------------------------------------------ | 208| value | [Dimension](ts-types.md#dimension10) | 是 | 内容区上下边缘的渐隐高度(支持百分比,100%为TextPicker高度的一半即最大值),设置为0时不显示渐隐效果,负数等非法值显示默认渐隐效果。默认值为36vp。| 209 210### disableTextStyleAnimation<sup>15+</sup> 211 212disableTextStyleAnimation(disabled: boolean) 213 214设置滑动过程中是否有文本样式变化动效。设置为true时,滑动过程中无字号、字重、字体颜色等变化动效,且文本均显示为[defaultTextStyle](#defaulttextstyle15)属性设置样式。如未设置defaultTextStyle,则显示为Text组件默认样式。 215 216**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。 217 218**系统能力:** SystemCapability.ArkUI.ArkUI.Full 219 220**参数:** 221 222| 参数名 | 类型 | 必填 | 说明 | 223| ------ | ------- | ---- | ------------------------------------------------------------ | 224| disabled | boolean | 是 | 设置滑动过程中是否有文本样式变化动效。<br/>true:无文本样式变化动效,false:有文本样式变化动效。<br/>默认值:false | 225 226### defaultTextStyle<sup>15+</sup> 227 228defaultTextStyle(style: TextPickerTextStyle) 229 230设置关闭滑动过程中文本样式变化动效时,各个选项文本的样式。 231 232**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。 233 234**系统能力:** SystemCapability.ArkUI.ArkUI.Full 235 236**参数:** 237 238| 参数名 | 类型 | 必填 | 说明 | 239| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 240| style | [TextPickerTextStyle](#textpickertextstyle15类型说明) | 是 | 设置关闭滑动过程中文本样式变化动效时的各个选项文本的样式,仅当disableTextStyleAnimation为true时生效。<br/>默认值:与[Text](ts-basic-components-text.md)组件默认值相同。 | 241 242> **说明:** 243> 244> 该组件不建议开发者在动效过程中修改属性数据。 245 246## 事件 247 248除支持[通用事件](ts-component-general-events.md)外,还支持以下事件: 249 250### onAccept<sup>(deprecated) </sup> 251 252onAccept(callback: (value: string, index: number) => void) 253 254点击弹窗中的“确定”按钮时触发该回调。该事件仅在[文本滑动选择器弹窗](ts-methods-textpicker-dialog.md)中生效。 255 256从API version 10开始废弃。 257 258**系统能力:** SystemCapability.ArkUI.ArkUI.Full 259 260**参数:** 261 262| 参数名 | 类型 | 必填 | 说明 | 263| ------ | ------ | ---- | -------------------- | 264| value | string | 是 | 当前选中项的文本。 | 265| index | number | 是 | 当前选中项的索引值,索引从0开始。 | 266 267### onCancel<sup>(deprecated) </sup> 268 269onCancel(callback: () => void) 270 271点击弹窗中的“取消”按钮时触发该回调。该事件仅在[文本滑动选择器弹窗](ts-methods-textpicker-dialog.md)中生效。 272 273从API version 10开始废弃。 274 275**系统能力:** SystemCapability.ArkUI.ArkUI.Full 276 277### onChange 278 279onChange(callback: (value: string \| string[], index: number \| number[]) => void) 280 281滑动选中TextPicker文本内容后,触发该回调。当显示文本或图片加文本列表时,value值为选中项中的文本值,当显示图片列表时,value值为空。 282 283**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 284 285**系统能力:** SystemCapability.ArkUI.ArkUI.Full 286 287**参数:** 288 289| 参数名 | 类型 | 必填 | 说明 | 290| ------ | ------------------------------------------ | ---- | ------------------------------------------------- | 291| value | string \| string[]<sup>10+</sup> | 是 | 当前选中项的文本。多列的情况,value为数组类型。 | 292| index | number \| number[]<sup>10+</sup> | 是 | 当前选中项的索引值,索引从0开始。多列的情况,index为数组类型。 | 293 294### onScrollStop<sup>14+</sup> 295 296onScrollStop(callback: TextPickerScrollStopCallback) 297 298文本选择器的选项列滑动停止时触发该事件。 299 300手指拖动选项列触发的滑动,手指离开屏幕且滑动停止时会触发该事件。 301 302当显示文本或图片加文本列表时,value值为选中项中的文本值,当显示图片列表时,value值为空。 303 304**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 305 306**系统能力:** SystemCapability.ArkUI.ArkUI.Full 307 308**参数:** 309 310| 参数名 | 类型 | 必填 | 说明 | 311| ------ | ------------------------------------------ | ---- | ------------------------------------------------- | 312| callback | [TextPickerScrollStopCallback](#textpickerscrollstopcallback14) | 是 | 文本选择器的选项列滑动停止时触发该事件。 | 313 314## TextPickerScrollStopCallback<sup>14+</sup> 315 316type TextPickerScrollStopCallback = (value: string | string[], index: number | number[]) => void 317 318文本选择器的选项列滑动停止时触发该事件。 319 320**卡片能力:** 从API version 14开始,该接口支持在ArkTS卡片中使用。 321 322**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 323 324**系统能力:** SystemCapability.ArkUI.ArkUI.Full 325 326**参数:** 327 328| 参数名 | 类型 | 必填 | 说明 | 329| ------ | ------------------------------------------ | ---- | ------------------------------------------------- | 330| value | string \| string[] | 是 | 当前选中项的文本。多列的情况,value为数组类型。 | 331| index | number \| number[] | 是 | 当前选中项的索引值,索引从0开始。多列的情况,index为数组类型。 | 332 333## TextPickerTextStyle<sup>15+</sup>类型说明 334 335文本样式选项,继承自[PickerTextStyle](ts-basic-components-datepicker.md#pickertextstyle10类型说明)。 336 337**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。 338 339| 参数名 | 类型 | 必填 | 说明 | 340| ----- | ---------------------------------------- | ---- | ------------------------- | 341| color | [ResourceColor](ts-types.md#resourcecolor) | 否 | 文本颜色。 | 342| font | [Font](ts-types.md#font) | 否 | 文本样式。 | 343| minFontSize | number \| string \| [Resource](ts-types.md#resource) | 否 | 文本最小显示字号,与maxFontSize配合使用,当设置minFontSize与maxFontSize时,font中的size设置不生效,默认最大行数为1,默认自适应高度方式为MIN_FONT_SIZE_FIRST。 | 344| maxFontSize | number \| string \| [Resource](ts-types.md#resource) | 否 | 文本最大显示字号。 | 345| overflow | [TextOverflow](ts-appendix-enums.md#textoverflow) | 否 | 文本截断方式,设置为MARQUEE时不生效。 | 346 347## 示例 348 349### 示例1(设置选择器列数) 350 351该示例通过配置range实现单列或多列文本选择器。 352 353```ts 354// xxx.ets 355class bottom { 356 bottom:number = 50 357} 358let bott:bottom = new bottom() 359@Entry 360@Component 361struct TextPickerExample { 362 private select: number = 1 363 private apfruits: string[] = ['apple1', 'apple2', 'apple3', 'apple4'] 364 private orfruits: string[] = ['orange1', 'orange2', 'orange3', 'orange4'] 365 private pefruits: string[] = ['peach1', 'peach2', 'peach3', 'peach4'] 366 private multi: string[][] = [this.apfruits, this.orfruits, this.pefruits] 367 private cascade: TextCascadePickerRangeContent[] = [ 368 { 369 text: '辽宁省', 370 children: [{ text: '沈阳市', children: [{ text: '沈河区' }, { text: '和平区' }, { text: '浑南区' }] }, 371 { text: '大连市', children: [{ text: '中山区' }, { text: '金州区' }, { text: '长海县' }] }] 372 }, 373 { 374 text: '吉林省', 375 children: [{ text: '长春市', children: [{ text: '南关区' }, { text: '宽城区' }, { text: '朝阳区' }] }, 376 { text: '四平市', children: [{ text: '铁西区' }, { text: '铁东区' }, { text: '梨树县' }] }] 377 }, 378 { 379 text: '黑龙江省', 380 children: [{ text: '哈尔滨市', children: [{ text: '道里区' }, { text: '道外区' }, { text: '南岗区' }] }, 381 { text: '牡丹江市', children: [{ text: '东安区' }, { text: '西安区' }, { text: '爱民区' }] }] 382 } 383 ] 384 385 build() { 386 Column() { 387 388 TextPicker({ range: this.apfruits, selected: this.select }) 389 .onChange((value: string | string[], index: number | number[]) => { 390 console.info('Picker item changed, value: ' + value + ', index: ' + index) 391 }) 392 .onScrollStop((value: string | string[], index: number | number[]) => { 393 console.info('Picker scroll stopped, value: ' + value + ', index: ' + index) 394 }).margin(bott) 395 396 TextPicker({ range: this.multi }) 397 .onChange((value: string | string[], index: number | number[]) => { 398 console.info('TextPicker 多列:onChange ' + JSON.stringify(value) + ', ' + 'index: ' + JSON.stringify(index)) 399 }) 400 .onScrollStop((value: string | string[], index: number | number[]) => { 401 console.info('TextPicker 多列:onScrollStop ' + JSON.stringify(value) + ', ' + 'index: ' + JSON.stringify(index)) 402 }).margin(bott) 403 404 TextPicker({ range: this.cascade }) 405 .onChange((value: string | string[], index: number | number[]) => { 406 console.info('TextPicker 多列联动:onChange ' + JSON.stringify(value) + ', ' + 'index: ' + JSON.stringify(index)) 407 }) 408 .onScrollStop((value: string | string[], index: number | number[]) => { 409 console.info('TextPicker 多列联动:onScrollStop ' + JSON.stringify(value) + ', ' + 'index: ' + JSON.stringify(index)) 410 }) 411 } 412 } 413} 414``` 415 416 417 418### 示例2(设置文本样式) 419 420该示例通过配置disappearTextStyle、textStyle、selectedTextStyle实现文本选择器中的文本样式。 421 422```ts 423// xxx.ets 424@Entry 425@Component 426struct TextPickerExample { 427 private select: number = 1 428 private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4'] 429 430 build() { 431 Column() { 432 TextPicker({ range: this.fruits, selected: this.select }) 433 .onChange((value: string | string[], index: number | number[]) => { 434 console.info('Picker item changed, value: ' + value + ', index: ' + index) 435 }) 436 .onScrollStop((value: string | string[], index: number | number[]) => { 437 console.info('Picker scroll stopped, value: ' + value + ', index: ' + index) 438 }) 439 .disappearTextStyle({color: Color.Red, font: {size: 15, weight: FontWeight.Lighter}}) 440 .textStyle({color: Color.Black, font: {size: 20, weight: FontWeight.Normal}}) 441 .selectedTextStyle({color: Color.Blue, font: {size: 30, weight: FontWeight.Bolder}}) 442 }.width('100%').height('100%') 443 } 444} 445``` 446 447 448 449### 示例3(设置无分割线样式) 450 451该示例通过配置divider为null实现无分割线样式的文本选择器。 452 453```ts 454// xxx.ets 455@Entry 456@Component 457struct TextPickerExample { 458 private select: number = 1 459 private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4'] 460 461 build() { 462 Column() { 463 TextPicker({ range: this.fruits, selected: this.select }) 464 .onChange((value: string | string[], index: number | number[]) => { 465 console.info('Picker item changed, value: ' + value + ', index: ' + index) 466 }) 467 .onScrollStop((value: string | string[], index: number | number[]) => { 468 console.info('Picker scroll stopped, value: ' + value + ', index: ' + index) 469 }) 470 .disappearTextStyle({color: Color.Red, font: {size: 15, weight: FontWeight.Lighter}}) 471 .textStyle({color: Color.Black, font: {size: 20, weight: FontWeight.Normal}}) 472 .selectedTextStyle({color: Color.Blue, font: {size: 30, weight: FontWeight.Bolder}}) 473 .divider(null) 474 }.width('100%').height('100%') 475 } 476} 477``` 478 479 480### 示例4(设置分割线样式) 481 482该示例通过配置divider的DividerOptions类型实现分割线样式的文本选择器。 483 484```ts 485// xxx.ets 486@Entry 487@Component 488struct TextPickerExample { 489 private select: number = 1 490 private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4'] 491 492 build() { 493 Column() { 494 TextPicker({ range: this.fruits, selected: this.select }) 495 .onChange((value: string | string[], index: number | number[]) => { 496 console.info('Picker item changed, value: ' + value + ', index: ' + index) 497 }) 498 .onScrollStop((value: string | string[], index: number | number[]) => { 499 console.info('Picker scroll stopped, value: ' + value + ', index: ' + index) 500 }) 501 .disappearTextStyle({color: Color.Red, font: {size: 15, weight: FontWeight.Lighter}}) 502 .textStyle({color: Color.Black, font: {size: 20, weight: FontWeight.Normal}}) 503 .selectedTextStyle({color: Color.Blue, font: {size: 30, weight: FontWeight.Bolder}}) 504 .divider({ 505 strokeWidth: 10, 506 color: Color.Red, 507 startMargin: 10, 508 endMargin: 20 509 } as DividerOptions) 510 }.width('100%').height('100%') 511 } 512} 513``` 514 515### 示例5(设置渐隐效果) 516 517该示例通过gradientHeight自定义TextPicker的渐隐效果高度。 518 519```ts 520// xxx.ets 521@Entry 522@Component 523struct TextPickerExample { 524 private select: number = 1 525 private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4'] 526 527 build() { 528 Column() { 529 TextPicker({ range: this.fruits, selected: this.select }) 530 .onChange((value: string | string[], index: number | number[]) => { 531 console.info('Picker item changed, value: ' + value + ', index: ' + index) 532 }) 533 .onScrollStop((value: string | string[], index: number | number[]) => { 534 console.info('Picker scroll stopped, value: ' + value + ', index: ' + index) 535 }) 536 .disappearTextStyle({color: Color.Red, font: {size: 15, weight: FontWeight.Lighter}}) 537 .textStyle({color: Color.Black, font: {size: 20, weight: FontWeight.Normal}}) 538 .selectedTextStyle({color: Color.Blue, font: {size: 30, weight: FontWeight.Bolder}}) 539 .gradientHeight(100) 540 }.width('100%').height('100%') 541 } 542} 543``` 544 545 546 547### 示例6(设置禁用文本样式变化动效与对应文本样式) 548 549该示例通过配置disableTextStyleAnimation、defaultTextStyle实现文本选择器禁用文本样式变化动效与此时的文本样式。 550 551```ts 552// xxx.ets 553@Entry 554@Component 555struct TextPickerExample { 556 private select: number = 1 557 private fruits: string[] = ['AAAAA', 'BBBBBBBBBBBBB', 'CCCC', 'DDDDDDDD', 'EEE'] 558 559 build() { 560 Column() { 561 TextPicker({ 562 range: this.fruits, 563 selected: this.select, 564 value: this.fruits[this.select] 565 }) 566 .disableTextStyleAnimation(true) 567 .margin({ bottom: 30 }) 568 TextPicker({ 569 range: this.fruits, 570 selected: this.select, 571 value: this.fruits[this.select] 572 }) 573 .disableTextStyleAnimation(true) 574 .defaultTextStyle({ minFontSize: 18, maxFontSize: 28, overflow: TextOverflow.Ellipsis }) 575 }.width('100%').height('100%') 576 } 577} 578``` 579 580 581