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