• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Progress
2
3进度条组件,用于显示内容加载或操作处理等进度。
4
5>  **说明:**
6>
7>  该组件从API version7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8
9
10## 子组件
11
1213
14
15## 接口
16
17Progress(options: {value: number, total?: number, type?: ProgressType})
18
19创建进度组件,用于显示内容加载或操作处理进度。
20
21从API version 9开始,该接口支持在ArkTS卡片中使用。
22
23**参数:**
24
25| 参数名                        | 参数类型                                | 必填   | 参数描述                                     |
26| -------------------------- | ----------------------------------- | ---- | ---------------------------------------- |
27| value                      | number                              | 是    | 指定当前进度值。设置小于0的数值时置为0,设置大于total的数值时置为total。<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
28| total                      | number                              | 否    | 指定进度总长。<br/>默认值:100<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
29| type<sup>8+</sup>          | [ProgressType](#progresstype枚举说明)   | 否    | 指定进度条类型。<br/>默认值:ProgressType.Linear<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
30| style<sup>deprecated</sup> | [ProgressStyle](#progressstyle枚举说明) | 否    | 指定进度条样式。<br/>该参数从API version8开始废弃,建议使用type替代。<br/>默认值:ProgressStyle.Linear |
31
32## ProgressType枚举说明
33
34从API version 9开始,该接口支持在ArkTS卡片中使用。
35
36| 名称                     | 描述                                       |
37| ---------------------- | ---------------------------------------- |
38| Linear                 | 线性样式。从API version9开始,高度大于宽度的时候自适应垂直显示。   |
39| Ring<sup>8+</sup>      | 环形无刻度样式,环形圆环逐渐显示至完全填充效果。                 |
40| Eclipse<sup>8+</sup>   | 圆形样式,显示类似月圆月缺的进度展示效果,从月牙逐渐变化至满月。         |
41| ScaleRing<sup>8+</sup> | 环形有刻度样式,显示类似时钟刻度形式的进度展示效果。从API version9开始,刻度外圈出现重叠的时候自动转换为环形无刻度进度条。 |
42| Capsule<sup>8+</sup>   | 胶囊样式,头尾两端圆弧处的进度展示效果与Eclipse相同;中段处的进度展示效果与Linear相同。高度大于宽度的时候自适应垂直显示。 |
43
44##  ProgressStyle枚举说明
45
46从API version 9开始,该接口支持在ArkTS卡片中使用。
47
48| 名称        | 描述                                       |
49| --------- | ---------------------------------------- |
50| Linear    | 线性样式。                                    |
51| Ring      | 环形无刻度样式,环形圆环逐渐显示至完全填充效果。                 |
52| Eclipse   | 圆形样式,显示类似月圆月缺的进度展示效果,从月牙逐渐变化至满月。         |
53| ScaleRing | 环形有刻度样式,显示类似时钟刻度形式的进度展示效果。               |
54| Capsule   | 胶囊样式,头尾两端圆弧处的进度展示效果与Eclipse相同;中段处的进度展示效果与Linear相同。高度大于宽度的时候自适应垂直显示。 |
55
56## 属性
57
58| 名称                 | 参数类型                                     | 描述                                       |
59| ------------------ | ---------------------------------------- | ---------------------------------------- |
60| value              | number                                   | 设置当前进度值。设置小于0的数值时置为0,设置大于total的数值时置为total。非法数值不生效。<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
61| color              | [ResourceColor](ts-types.md#resourcecolor) | 设置进度条前景色。<br/>默认值:'\#ff007dff'<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
62| backgroundColor    | [ResourceColor](ts-types.md#resourcecolor) | 设置进度条底色。<br/>默认值:'\#19182431'<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
63| style<sup>8+</sup> | {<br/>strokeWidth?:&nbsp;[Length](ts-types.md#length),<br/>scaleCount?:&nbsp;number,<br/>scaleWidth?:&nbsp;[Length](ts-types.md#length)<br/>} | 定义组件的样式。<br/>-&nbsp;strokeWidth:&nbsp;设置进度条宽度(不支持百分比设置)。从API version9开始,环形进度条设置宽度大于等于半径时,默认修改宽度至半径值的二分之一。<br/>默认值:4.0Vp<br/>-&nbsp;scaleCount:&nbsp;设置环形进度条总刻度数。<br>默认值:120<br/>-&nbsp;scaleWidth:&nbsp;设置环形进度条刻度粗细(不支持百分比设置),刻度粗细大于进度条宽度时,为系统默认粗细。<br>默认值:2.0Vp<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
64
65## 事件
66
67支持[通用事件](ts-universal-events-click.md)。
68
69## 示例
70
71```ts
72// xxx.ets
73@Entry
74@Component
75struct ProgressExample {
76  build() {
77    Column({ space: 15 }) {
78      Text('Linear Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
79      Progress({ value: 10, type: ProgressType.Linear }).width(200)
80      Progress({ value: 20, total: 150, type: ProgressType.Linear }).color(Color.Grey).value(50).width(200)
81
82
83      Text('Eclipse Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
84      Row({ space: 40 }) {
85        Progress({ value: 10, type: ProgressType.Eclipse }).width(100)
86        Progress({ value: 20, total: 150, type: ProgressType.Eclipse }).color(Color.Grey).value(50).width(100)
87      }
88
89      Text('ScaleRing Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
90      Row({ space: 40 }) {
91        Progress({ value: 10, type: ProgressType.ScaleRing }).width(100)
92        Progress({ value: 20, total: 150, type: ProgressType.ScaleRing })
93          .color(Color.Grey).value(50).width(100)
94          .style({ strokeWidth: 15, scaleCount: 15, scaleWidth: 5 })
95      }
96
97      // scaleCount和scaleWidth效果对比
98      Row({ space: 40 }) {
99        Progress({ value: 20, total: 150, type: ProgressType.ScaleRing })
100          .color(Color.Grey).value(50).width(100)
101          .style({ strokeWidth: 20, scaleCount: 20, scaleWidth: 5 })
102        Progress({ value: 20, total: 150, type: ProgressType.ScaleRing })
103          .color(Color.Grey).value(50).width(100)
104          .style({ strokeWidth: 20, scaleCount: 30, scaleWidth: 3 })
105      }
106
107      Text('Ring Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
108      Row({ space: 40 }) {
109        Progress({ value: 10, type: ProgressType.Ring }).width(100)
110        Progress({ value: 20, total: 150, type: ProgressType.Ring })
111          .color(Color.Grey).value(50).width(100)
112          .style({ strokeWidth: 20, scaleCount: 30, scaleWidth: 20 })
113      }
114
115      Text('Capsule Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
116      Row({ space: 40 }) {
117        Progress({ value: 10, type: ProgressType.Capsule }).width(100).height(50)
118        Progress({ value: 20, total: 150, type: ProgressType.Capsule })
119          .color(Color.Grey)
120          .value(50)
121          .width(100)
122          .height(50)
123      }
124    }.width('100%').margin({ top: 30 })
125  }
126}
127```
128
129![progress](figures/arkts-progress.png)
130