ts-basic-components-progress.md 7.5 KB
Newer Older
Z
zengyawen 已提交
1 2
# Progress

T
third  
tianyu 已提交
3
进度条组件,用于显示内容加载或操作处理等进度。
Z
zengyawen 已提交
4

G
gmy 已提交
5 6
>  **说明:**
>
H
HelloCrease 已提交
7
>  该组件从API version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
Z
zengyawen 已提交
8

Z
zengyawen 已提交
9 10

## 子组件
Z
zengyawen 已提交
11 12 13



Z
zengyawen 已提交
14

S
sienna1128 已提交
15
## 接口
Z
zengyawen 已提交
16

K
kangchongtao 已提交
17
Progress(options: {value: number, total?: number, type?: ProgressType})
Z
zengyawen 已提交
18 19 20

创建进度组件,用于显示内容加载或操作处理进度。

21 22
从API version 9开始,该接口支持在ArkTS卡片中使用。

G
gmy 已提交
23
**参数:**
Z
zengyawen 已提交
24

H
HelloCrease 已提交
25 26 27 28 29 30
| 参数名                        | 参数类型                                | 必填   | 参数描述                                     |
| -------------------------- | ----------------------------------- | ---- | ---------------------------------------- |
| value                      | number                              | 是    | 指定当前进度值。设置小于0的数值时置为0,设置大于total的数值时置为total。<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| total                      | number                              | 否    | 指定进度总长。<br/>默认值:100<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| type<sup>8+</sup>          | [ProgressType](#progresstype枚举说明)   | 否    | 指定进度条类型。<br/>默认值:ProgressType.Linear<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| style<sup>deprecated</sup> | [ProgressStyle](#progressstyle枚举说明) | 否    | 指定进度条样式。<br/>该参数从API version8开始废弃,建议使用type替代。<br/>默认值:ProgressStyle.Linear |
Z
zengyawen 已提交
31

G
gmy 已提交
32
## ProgressType枚举说明
Z
zengyawen 已提交
33

34 35
从API version 9开始,该接口支持在ArkTS卡片中使用。

H
HelloCrease 已提交
36 37 38 39 40 41 42
| 名称                     | 描述                                       |
| ---------------------- | ---------------------------------------- |
| Linear                 | 线性样式。从API version9开始,高度大于宽度的时候自适应垂直显示。   |
| Ring<sup>8+</sup>      | 环形无刻度样式,环形圆环逐渐显示至完全填充效果。                 |
| Eclipse<sup>8+</sup>   | 圆形样式,显示类似月圆月缺的进度展示效果,从月牙逐渐变化至满月。         |
| ScaleRing<sup>8+</sup> | 环形有刻度样式,显示类似时钟刻度形式的进度展示效果。从API version9开始,刻度外圈出现重叠的时候自动转换为环形无刻度进度条。 |
| Capsule<sup>8+</sup>   | 胶囊样式,头尾两端圆弧处的进度展示效果与Eclipse相同;中段处的进度展示效果与Linear相同。高度大于宽度的时候自适应垂直显示。 |
T
third  
tianyu 已提交
43 44 45

##  ProgressStyle枚举说明 

46 47
从API version 9开始,该接口支持在ArkTS卡片中使用。

H
HelloCrease 已提交
48 49 50 51 52 53
| 名称        | 描述                                       |
| --------- | ---------------------------------------- |
| Linear    | 线性样式。                                    |
| Ring      | 环形无刻度样式,环形圆环逐渐显示至完全填充效果。                 |
| Eclipse   | 圆形样式,显示类似月圆月缺的进度展示效果,从月牙逐渐变化至满月。         |
| ScaleRing | 环形有刻度样式,显示类似时钟刻度形式的进度展示效果。               |
54
| Capsule   | 胶囊样式,头尾两端圆弧处的进度展示效果与Eclipse相同;中段处的进度展示效果与Linear相同。高度大于宽度的时候自适应垂直显示。 |
Z
zengyawen 已提交
55 56 57

## 属性

Y
yamila 已提交
58 59
除支持[通用属性](ts-universal-attributes-size.md)外,还支持以下属性:

H
HelloCrease 已提交
60 61 62 63 64
| 名称                 | 参数类型                                     | 描述                                       |
| ------------------ | ---------------------------------------- | ---------------------------------------- |
| value              | number                                   | 设置当前进度值。设置小于0的数值时置为0,设置大于total的数值时置为total。非法数值不生效。<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| color              | [ResourceColor](ts-types.md#resourcecolor) | 设置进度条前景色。<br/>默认值:'\#ff007dff'<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| backgroundColor    | [ResourceColor](ts-types.md#resourcecolor) | 设置进度条底色。<br/>默认值:'\#19182431'<br/><br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
65
| 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卡片中使用。 |
Z
zengyawen 已提交
66

Y
yamila 已提交
67 68 69
## 事件

支持[通用事件](ts-universal-events-click.md)
Z
zengyawen 已提交
70 71

## 示例
Z
zengyawen 已提交
72

H
geshi  
HelloCrease 已提交
73 74
```ts
// xxx.ets
Z
zengyawen 已提交
75 76 77 78
@Entry
@Component
struct ProgressExample {
  build() {
Z
zengyawen 已提交
79
    Column({ space: 15 }) {
Z
zengyawen 已提交
80
      Text('Linear Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
Y
yaoyuchi 已提交
81 82
      Progress({ value: 10, type: ProgressType.Linear }).width(200)
      Progress({ value: 20, total: 150, type: ProgressType.Linear }).color(Color.Grey).value(50).width(200)
Z
zengyawen 已提交
83

S
sienna1128 已提交
84

Z
zengyawen 已提交
85 86
      Text('Eclipse Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
      Row({ space: 40 }) {
Y
yaoyuchi 已提交
87 88
        Progress({ value: 10, type: ProgressType.Eclipse }).width(100)
        Progress({ value: 20, total: 150, type: ProgressType.Eclipse }).color(Color.Grey).value(50).width(100)
Z
zengyawen 已提交
89 90 91 92
      }

      Text('ScaleRing Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
      Row({ space: 40 }) {
Y
yaoyuchi 已提交
93 94
        Progress({ value: 10, type: ProgressType.ScaleRing }).width(100)
        Progress({ value: 20, total: 150, type: ProgressType.ScaleRing })
Z
zengyawen 已提交
95
          .color(Color.Grey).value(50).width(100)
Y
yaoyuchi 已提交
96
          .style({ strokeWidth: 15, scaleCount: 15, scaleWidth: 5 })
Z
zengyawen 已提交
97 98
      }

S
sienna1128 已提交
99 100 101 102 103 104 105 106 107 108
      // scaleCount和scaleWidth效果对比
      Row({ space: 40 }) {
        Progress({ value: 20, total: 150, type: ProgressType.ScaleRing })
          .color(Color.Grey).value(50).width(100)
          .style({ strokeWidth: 20, scaleCount: 20, scaleWidth: 5 })
        Progress({ value: 20, total: 150, type: ProgressType.ScaleRing })
          .color(Color.Grey).value(50).width(100)
          .style({ strokeWidth: 20, scaleCount: 30, scaleWidth: 3 })
      }

Z
zengyawen 已提交
109 110
      Text('Ring Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
      Row({ space: 40 }) {
Y
yaoyuchi 已提交
111 112
        Progress({ value: 10, type: ProgressType.Ring }).width(100)
        Progress({ value: 20, total: 150, type: ProgressType.Ring })
Z
zengyawen 已提交
113
          .color(Color.Grey).value(50).width(100)
Y
yaoyuchi 已提交
114
          .style({ strokeWidth: 20, scaleCount: 30, scaleWidth: 20 })
Z
zengyawen 已提交
115 116 117 118
      }

      Text('Capsule Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
      Row({ space: 40 }) {
T
tianyu 已提交
119
        Progress({ value: 10, type: ProgressType.Capsule }).width(100).height(50)
G
gmy 已提交
120 121 122 123 124
        Progress({ value: 20, total: 150, type: ProgressType.Capsule })
          .color(Color.Grey)
          .value(50)
          .width(100)
          .height(50)
Z
zengyawen 已提交
125 126
      }
    }.width('100%').margin({ top: 30 })
Z
zengyawen 已提交
127 128 129 130
  }
}
```

H
HelloCrease 已提交
131
![progress](figures/arkts-progress.png)