• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ArcSlider
2
3弧形滑动条组件,通常用于在圆形屏幕中快速调节设置值,如音量调节、亮度调节等应用场景。
4
5>  **说明:**
6>
7>  该组件从API version 18开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8
9## 导入模块
10
11```ts
12import {
13  ArcSlider,
14  ArcSliderPosition,
15  ArcSliderOptions,
16  ArcSliderValueOptions,
17  ArcSliderLayoutOptions,
18  ArcSliderStyleOptions,
19  ArcSliderValueOptionsConstructorOptions,
20  ArcSliderLayoutOptionsConstructorOptions,
21  ArcSliderStyleOptionsConstructorOptions,
22  ArcSliderOptionsConstructorOptions
23} from '@kit.ArkUI'
24```
25
26## 子组件
27
2829
30## 属性
31
32不支持[通用属性](ts-component-general-attributes.md)。
33
34## 事件
35
36不支持[通用事件](ts-component-general-events.md)。
37
38## ArcSlider
39
40ArcSlider({ options: ArcSliderOptions })
41
42创建ArcSlider实例,入参是弧形进度条配置选项。
43
44**装饰器类型:**@Component
45
46**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
47
48**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
49
50**参数:**
51
52| 名称    | 类型                                  | 必填 | 说明                                                         |
53| ------- | ------------------------------------- | ---- | ------------------------------------------------------------ |
54| options | [ArcSliderOptions](#arcslideroptions) | 是   | 配置弧形滑动条的参数。<br/>默认值:[ArcSliderOptions](#arcslideroptions)的各项子属性均取其默认值。 |
55
56## ArcSliderOptions
57
58配置弧形Slider的信息。
59
60**装饰器类型:**@ObservedV2
61
62**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
63
64**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
65
66| 名称 | 类型 | 必填 | 装饰器类型 | 说明 |
67| -------- | -------- | -------- | -------- | -------- |
68| valueOptions | [ArcSliderValueOptions](#arcslidervalueoptions) | 否 | @Trace | 配置弧形Slider的数值信息。<br/>默认值:[ArcSliderValueOptions](#arcslidervalueoptions)的各项子属性均取其默认值。 |
69| layoutOptions | [ArcSliderLayoutOptions](#arcsliderlayoutoptions) | 否 | @Trace | 配置弧形Slider的布局信息。<br/>默认值:[ArcSliderLayoutOptions](#arcsliderlayoutoptions)的各项子属性均取其默认值。 |
70| styleOptions | [ArcSliderStyleOptions](#arcsliderstyleoptions) | 否 | @Trace | 配置弧形Slider的样式信息。<br/>默认值:[ArcSliderStyleOptions](#arcsliderstyleoptions)的各项子属性均取其默认值。 |
71| digitalCrownSensitivity | [CrownSensitivity](ts-appendix-enums.md#crownsensitivity18) | 否 | @Trace | 设置旋转表冠的灵敏度。<br/>默认值:CrownSensitivity.MEDIUM |
72| onTouch | [ArcSliderTouchHandler](#arcslidertouchhandler) | 否 | @Trace | 弧形Slider被触摸时,告知应用。<br/>默认值:不传入的情况,无回调。 |
73| onChange | [ArcSliderChangeHandler](#arcsliderchangehandler) | 否 | @Trace | 弧形Slider的进度值发生变化时,告知应用。<br/>默认值:不传入的情况,无回调。 |
74| onEnlarge | [ArcSliderEnlargeHandler](#arcsliderenlargehandler) | 否 | @Trace | 弧形Slider放大或缩小时,告知应用。<br/>默认值:不传入的情况,无回调。 |
75
76### constructor
77
78constructor(options?: ArcSliderOptionsConstructorOptions)
79
80ArcSliderOptions的构造函数。
81
82**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
83
84**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
85
86**参数:**
87
88| 参数名  | 类型                                                         | 必填 | 说明                         |
89| ------- | ------------------------------------------------------------ | ---- | ---------------------------- |
90| options | [ArcSliderOptionsConstructorOptions](#arcslideroptionsconstructoroptions) | 否   | ArcSliderOptions的构造信息。 |
91
92## ArcSliderValueOptions
93
94配置弧形Slider的数值信息。
95
96**装饰器类型:**@ObservedV2
97
98**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
99
100**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
101
102| 名称  | 类型   | 必填 | 装饰器类型 | 说明                                                         |
103| ----- | ------ | ---- | ---------- | ------------------------------------------------------------ |
104| progress | number | 否   | @Trace     | 设置当前进度值。<br />默认值:与参数min的取值一致            |
105| min   | number | 否   | @Trace     | 设置最小值。<br />默认值:0                                  |
106| max   | number | 否   | @Trace     | 设置最大值。<br />默认值:100<br />**说明:**<br/>当出现异常情况min >= max时,min取默认值0,max取默认值100。<br/>progress不在[min, max]范围之内,取min或者max,靠近min取min,靠近max取max。 |
107
108### constructor
109
110constructor(options?: ArcSliderValueOptionsConstructorOptions)
111
112ArcSliderValueOptions的构造函数。
113
114**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
115
116**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
117
118**参数:**
119
120| 参数名  | 类型                                                         | 必填 | 说明                              |
121| ------- | ------------------------------------------------------------ | ---- | --------------------------------- |
122| options | [ArcSliderValueOptionsConstructorOptions](#arcslidervalueoptionsconstructoroptions) | 否   | ArcSliderValueOptions的构造信息。 |
123
124## ArcSliderLayoutOptions
125
126配置弧形Slider的布局信息。
127
128**装饰器类型:**@ObservedV2
129
130**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
131
132**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
133
134| 名称     | 类型                                    | 必填 | 装饰器类型 | 说明                                                         |
135| -------- | --------------------------------------- | ---- | ---------- | ------------------------------------------------------------ |
136| reverse  | boolean                                 | 否   | @Trace     | 设置弧形Slider取值范围是否反向。<br />默认值:true。表示从下往上滑动。 |
137| position | [ArcSliderPosition](#arcsliderposition) | 否   | @Trace     | 弧形Slider的屏幕显示位置。<br />默认值:ArcSliderPosition.RIGHT |
138
139### constructor
140
141constructor(options?: ArcSliderLayoutOptionsConstructorOptions)
142
143ArcSliderLayoutOptions的构造函数。
144
145**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
146
147**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
148
149**参数:**
150
151| 参数名  | 类型                                                         | 必填 | 说明                               |
152| ------- | ------------------------------------------------------------ | ---- | ---------------------------------- |
153| options | [ArcSliderLayoutOptionsConstructorOptions](#arcsliderlayoutoptionsconstructoroptions) | 否   | ArcSliderLayoutOptions的构造信息。 |
154
155## ArcSliderStyleOptions
156
157配置弧形Slider的样式信息。
158
159**装饰器类型:**@ObservedV2
160
161**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
162
163**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
164
165| 名称                 | 类型   | 必填 | 装饰器类型 | 说明                                                         |
166| -------------------- | ------ | ---- | ---------- | ------------------------------------------------------------ |
167| trackThickness       | number | 否   | @Trace     | 正常状态下弧形Slider的描边粗细,单位:vp。<br />默认值:5<br />取值范围:最小可取5,最大可取16,异常值按默认值处理。 |
168| activeTrackThickness | number | 否   | @Trace     | 放大状态下弧形Slider的描边粗细,单位:vp。<br />默认值:24<br />取值范围:最小可取24,最大可取36,异常值按默认值处理。 |
169| trackColor           | string | 否   | @Trace     | 设置描边背景色。<br />默认值:#33FFFFFF                      |
170| selectedColor        | string | 否   | @Trace     | 设置描边高亮色。<br />默认值:#FF5EA1FF                      |
171| trackBlur            | number | 否   | @Trace     | 设置描边背景模糊值,单位:vp。<br />默认值:20<br/>设置小于0的值时,按照默认值处理。 |
172
173### constructor
174
175constructor(options?: ArcSliderStyleOptionsConstructorOptions)
176
177ArcSliderStyleOptions的构造函数。
178
179**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
180
181**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
182
183**参数:**
184
185| 参数名  | 类型                                                         | 必填 | 说明                              |
186| ------- | ------------------------------------------------------------ | ---- | --------------------------------- |
187| options | [ArcSliderStyleOptionsConstructorOptions](#arcsliderstyleoptionsconstructoroptions) | 否   | ArcSliderStyleOptions的构造信息。 |
188
189## ArcSliderPosition
190
191配置弧形Slider的屏幕显示位置。
192
193**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
194
195**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
196
197| 名称  | 值   | 说明                             |
198| ----- | ---- | -------------------------------- |
199| LEFT  | 0    | 弧形Slider的屏幕显示位置在左侧。 |
200| RIGHT | 1    | 弧形Slider的屏幕显示位置在右侧。 |
201
202## ArcSliderTouchHandler
203
204type ArcSliderTouchHandler = (event: TouchEvent) => void
205
206弧形Slider被触摸时,告知应用。
207
208**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
209
210**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
211
212**参数:**
213
214| 参数名 | 类型                                                         | 必填 | 说明                 |
215| ------ | ------------------------------------------------------------ | ---- | -------------------- |
216| event  | [TouchEvent](ts-universal-events-touch.md#touchevent对象说明) | 是   | 获得TouchEvent对象。 |
217
218## ArcSliderChangeHandler
219
220type ArcSliderChangeHandler = (progress: number) => void
221
222弧形Slider的进度值发生变化时,告知应用。
223
224**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
225
226**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
227
228**参数:**
229
230| 参数名   | 类型   | 必填 | 说明                 |
231| -------- | ------ | ---- | -------------------- |
232| progress | number | 是   | Slider当前的进度值。 |
233
234## ArcSliderEnlargeHandler
235
236type ArcSliderEnlargeHandler = (isEnlarged: boolean) => void
237
238弧形Slider放大或缩小时,告知应用。
239
240**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
241
242**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
243
244**参数:**
245
246| 参数名     | 类型    | 必填 | 说明                                                         |
247| ---------- | ------- | ---- | ------------------------------------------------------------ |
248| isEnlarged | boolean | 是   | ArcSlider当前是否放大。<br/>isEnlarged为false时,ArcSlider组件处于缩小状态。<br/>isEnlarged为true时,ArcSlider组件处于放大状态。 |
249
250## ArcSliderOptionsConstructorOptions
251
252ArcSliderOptions的构造信息。
253
254**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
255
256**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
257
258| 名称                    | 类型                                                        | 必填 | 说明                                                         |
259| ----------------------- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ |
260| valueOptions            | [ArcSliderValueOptions](#arcslidervalueoptions)             | 否   | 配置弧形Slider的数值信息。<br/>默认值:[ArcSliderValueOptions](#arcslidervalueoptions)的各项子属性均取其默认值。 |
261| layoutOptions           | [ArcSliderLayoutOptions](#arcsliderlayoutoptions)           | 否   | 配置弧形Slider的布局信息。<br/>默认值:[ArcSliderLayoutOptions](#arcsliderlayoutoptions)的各项子属性均取其默认值。 |
262| styleOptions            | [ArcSliderStyleOptions](#arcsliderstyleoptions)             | 否   | 配置弧形Slider的样式信息。<br/>默认值:[ArcSliderStyleOptions](#arcsliderstyleoptions)的各项子属性均取其默认值。 |
263| digitalCrownSensitivity | [CrownSensitivity](ts-appendix-enums.md#crownsensitivity18) | 否   | 设置旋转表冠的灵敏度。<br/>默认值:CrownSensitivity.MEDIUM   |
264| onTouch                 | [ArcSliderTouchHandler](#arcslidertouchhandler)             | 否   | 弧形Slider被触摸时,告知应用。<br/>默认值:不传入的情况,无回调。 |
265| onChange                | [ArcSliderChangeHandler](#arcsliderchangehandler)           | 否   | 弧形Slider的进度值发生变化时,告知应用。<br/>默认值:不传入的情况,无回调。 |
266| onEnlarge               | [ArcSliderEnlargeHandler](#arcsliderenlargehandler)         | 否   | 弧形Slider放大或缩小时,告知应用。<br/>默认值:不传入的情况,无回调。 |
267
268## ArcSliderValueOptionsConstructorOptions
269
270ArcSliderValueOptions的构造信息。
271
272**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
273
274**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
275
276| 名称  | 类型   | 必填 | 说明                                                         |
277| ----- | ------ | ---- | ------------------------------------------------------------ |
278| progress | number | 否   | 设置当前进度值。<br />默认值:与参数min的取值一致。           |
279| min   | number | 否   | 设置最小值。<br />默认值:0                                  |
280| max   | number | 否   | 设置最大值。<br />默认值:100<br />**说明:**<br/>当出现异常情况min >= max时,min取默认值0,max取默认值100。<br/>progress不在[min, max]范围之内,取min或者max,靠近min取min,靠近max取max。 |
281
282## ArcSliderLayoutOptionsConstructorOptions
283
284ArcSliderLayoutValueOptions的构造信息。
285
286**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
287
288**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
289
290| 名称     | 类型                                    | 必填 | 说明                                                         |
291| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
292| reverse  | boolean                                 | 否   | 设置弧形Slider取值范围是否反向。<br />默认值:true。表示从下往上滑动。 |
293| position | [ArcSliderPosition](#arcsliderposition) | 否   | 弧形Slider的屏幕显示位置。<br />默认值:ArcSliderPosition.RIGHT |
294
295## ArcSliderStyleOptionsConstructorOptions
296
297ArcSliderStyleOptions的构造信息。
298
299**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
300
301**系统能力:** SystemCapability.ArkUI.ArkUI.Circle
302
303| 名称                 | 类型   | 必填 | 说明                                                         |
304| -------------------- | ------ | ---- | ------------------------------------------------------------ |
305| trackThickness       | number | 否   | 正常状态下弧形Slider的描边粗细,单位:vp。<br />默认值:5<br />取值范围:最小可取5,最大可取16,异常值按默认值处理。 |
306| activeTrackThickness | number | 否   | 放大状态下弧形Slider的描边粗细,单位:vp。<br />默认值:24<br />取值范围:最小可取24,最大可取36,异常值按默认值处理。 |
307| trackColor           | string | 否   | 设置描边背景色。<br />默认值:#33FFFFFF                      |
308| selectedColor        | string | 否   | 设置描边高亮色。<br />默认值:#FF5EA1FF                      |
309| trackBlur            | number | 否   | 设置描边背景模糊值,单位:vp。<br />默认值:20<br/>设置小于0的值时,按照默认值处理。 |
310
311## 示例
312
313```ts
314// xxx.ets
315import {
316  ArcSlider,
317  ArcSliderPosition,
318  ArcSliderOptions,
319  ArcSliderValueOptions,
320  ArcSliderLayoutOptions,
321  ArcSliderStyleOptions,
322  ArcSliderValueOptionsConstructorOptions,
323  ArcSliderLayoutOptionsConstructorOptions,
324  ArcSliderStyleOptionsConstructorOptions,
325  ArcSliderOptionsConstructorOptions
326} from '@kit.ArkUI'
327
328@Entry
329@ComponentV2
330struct ArcSliderExample {
331  valueOptionsConstructorOptions: ArcSliderValueOptionsConstructorOptions = {
332    progress: 60,
333    min: 10,
334    max: 110
335  }
336
337  layoutOptionsConstructorOptions: ArcSliderLayoutOptionsConstructorOptions = {
338    reverse: true,
339    position: ArcSliderPosition.RIGHT
340  }
341  styleOptionsConstructorOptions: ArcSliderStyleOptionsConstructorOptions = {
342    trackThickness: 8,
343    activeTrackThickness: 30,
344    trackColor: '#ffd5d5d5',
345    selectedColor: '#ff2787d9',
346    trackBlur: 20
347  }
348  valueOptions: ArcSliderValueOptions = new ArcSliderValueOptions(this.valueOptionsConstructorOptions)
349  layoutOptions: ArcSliderLayoutOptions = new ArcSliderLayoutOptions(this.layoutOptionsConstructorOptions)
350  styleOptions: ArcSliderStyleOptions = new ArcSliderStyleOptions(this.styleOptionsConstructorOptions)
351  arcSliderOptionsConstructorOptions: ArcSliderOptionsConstructorOptions = {
352    valueOptions: this.valueOptions,
353    layoutOptions: this.layoutOptions,
354    styleOptions: this.styleOptions,
355    digitalCrownSensitivity:CrownSensitivity.LOW,
356    onTouch: (event: TouchEvent) => {
357    },
358    onChange: (progress: number) => {
359    },
360    onEnlarge: (isEnlarged: boolean) => {
361    }
362  }
363  arcSliderOptions: ArcSliderOptions = new ArcSliderOptions(this.arcSliderOptionsConstructorOptions)
364
365  build() {
366    Column() {
367      ArcSlider({ options: this.arcSliderOptions })}
368      .width('100%')
369  }
370}
371```
372
373![arcslider](figures/arcslider.gif)
374