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 24无 25 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[] \| string[][]<sup>10+</sup> \| [Resource](ts-types.md#resource) \|<br/>[TextPickerRangeContent](#textpickerrangecontent10对象说明)[]<sup>10+</sup> \| [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 \| 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) \| [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 \| [Resource](ts-types.md#resource) | 否 | 否 | 图片资源。 icon是string类型时,表示图片存放的路径,例如"/common/hello.png"。 | 67| text | string \| [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 \| [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 \| 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 \| 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 \| 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 \| 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: (value: string \| string[], index: number \| number[]) => 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 \| string[]<sup>10+</sup> | 是 | 当前选中项的文本。多列数据选择器的value为数组类型。 | 562| index | number \| 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 \| string[]<sup>10+</sup> | 是 | 当前选中项的文本。多列数据选择器的selectItem为数组类型。<br/>**说明:**<br/>当选择器内容为文本或图文混排时,selectItem值为选中项中的文本值;当选择器内容为图片时,selectItem值为空。 | 701| index | number \| 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 \| string[] | 是 | 当前选中项的文本。多列数据选择器的value为数组类型。<br/>**说明:**<br/>当选择器内容为文本或图文混排时,value值为选中项中的文本值;当选择器内容为图片时,value值为空。 | 718| index | number \| 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 \| string[] | 是 | 当前选中项的文本。多列数据选择器的value为数组类型。<br/>**说明:**<br/>当选择器内容为文本或图文混排时,value值为选中项中的文本值;当选择器内容为图片时,value值为空。 | 735| index | number \| 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) \| [BorderRadiuses](ts-types.md#borderradiuses9) \| [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 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 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 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 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 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 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 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 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 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 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