进度条 (Progress)
==============

Progress是进度条显示组件，显示内容通常为目标操作的当前进度。具体用法请参考[Progress](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-progress)。

#### 创建进度条

Progress通过调用接口来创建，接口调用方式如下：

Progress(options: {value: number, total?: number, type?: ProgressType})

其中，value用于设置初始进度值，total用于设置进度总长度，type用于设置Progress样式。

Progress({ value: 24, total: 100, type: ProgressType.Linear }) // 创建一个进度总长为100，初始进度值为24的线性进度条

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/89/v3/GoTL54h7RlGy7xoi_dpqcQ/zh-cn_image_0000002664207639.png?HW-CC-KV=V1&HW-CC-Date=20260709T132302Z&HW-CC-Expire=86400&HW-CC-Sign=B51AD1F85DCC853880FC1E7813EFAB24A083D21EA1477B94DFD7221A9EEBBAEA)

#### 设置进度条样式

Progress有5种可选类型，通过[ProgressType](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-progress#progresstype8枚举说明)可以设置进度条样式。ProgressType类型包括：ProgressType.Linear（线性样式）、 ProgressType.Ring（环形无刻度样式）、ProgressType.ScaleRing（环形有刻度样式）、ProgressType.Eclipse（圆形样式）和ProgressType.Capsule（胶囊样式）。

*   线性样式进度条（默认类型）
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/21/v3/dyJUllGvQhaJds9H9h8jNA/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260709T132302Z&HW-CC-Expire=86400&HW-CC-Sign=17CD826E452A42CF35F3CCD8D00BC4C46795CC707E8CDC6BCA175AA033A4D07A)
    
    从API version 9开始，组件高度大于宽度时，自适应垂直显示；组件高度等于宽度时，保持水平显示。
    
    Progress({ value: 20, total: 100, type: ProgressType.Linear }).width(200).height(50)
    Progress({ value: 20, total: 100, type: ProgressType.Linear }).width(50).height(200)
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/4d/v3/QvRqe1ijTeG1N3HvcWq-sQ/zh-cn_image_0000002664327699.png?HW-CC-KV=V1&HW-CC-Date=20260709T132302Z&HW-CC-Expire=86400&HW-CC-Sign=C65091461D2A0C5122EFC9A1016F072F0EACF55E9F372B1F0FADDD39A8C410E1)
    
*   环形无刻度样式进度条
    
    // 从左往右，1号环形进度条，默认前景色为蓝色渐变，默认strokeWidth进度条宽度为2.0vp
    Progress({ value: 40, total: 150, type: ProgressType.Ring }).width(100).height(100)
    // 从左往右，2号环形进度条
    Progress({ value: 40, total: 150, type: ProgressType.Ring }).width(100).height(100)
      .color(Color.Grey)    // 进度条前景色为灰色
      .style({ strokeWidth: 15})    // 设置strokeWidth进度条宽度为15.0vp
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/b9/v3/LESGJj8BTm2xjOAJsJXabw/zh-cn_image_0000002633848590.png?HW-CC-KV=V1&HW-CC-Date=20260709T132302Z&HW-CC-Expire=86400&HW-CC-Sign=71A8231E83855C595D04E18157EF46E658BCBA74DFBE198566C3B83FEA6CD177)
    
*   环形有刻度样式进度条
    
    Progress({ value: 20, total: 150, type: ProgressType.ScaleRing }).width(100).height(100)
      .backgroundColor(Color.Black)
      .style({ scaleCount: 20, scaleWidth: 5 })    // 设置环形有刻度进度条总刻度数为20，刻度宽度为5vp
    Progress({ value: 20, total: 150, type: ProgressType.ScaleRing }).width(100).height(100)
      .backgroundColor(Color.Black)
      .style({ strokeWidth: 15, scaleCount: 20, scaleWidth: 5 })    // 设置环形有刻度进度条宽度15，总刻度数为20，刻度宽度为5vp
    Progress({ value: 20, total: 150, type: ProgressType.ScaleRing }).width(100).height(100)
      .backgroundColor(Color.Black)
      .style({ strokeWidth: 15, scaleCount: 20, scaleWidth: 3 })    // 设置环形有刻度进度条宽度15，总刻度数为20，刻度宽度为3vp
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/10/v3/kuveQSl5T_SI0G9Sp5lZjQ/zh-cn_image_0000002634008494.png?HW-CC-KV=V1&HW-CC-Date=20260709T132302Z&HW-CC-Expire=86400&HW-CC-Sign=B0EE6343FCEB31D8930AFD7444EFFDABBCCEBD21D164B807609FD827C3698C1E)
    
*   圆形样式进度条
    
    // 从左往右，1号圆形进度条，默认前景色为蓝色
    Progress({ value: 10, total: 150, type: ProgressType.Eclipse }).width(100).height(100)
    // 从左往右，2号圆形进度条，指定前景色为灰色
    Progress({ value: 20, total: 150, type: ProgressType.Eclipse }).color(Color.Grey).width(100).height(100)
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/b7/v3/ofPtFvTnQbOj6SIH0Os2eQ/zh-cn_image_0000002664207641.png?HW-CC-KV=V1&HW-CC-Date=20260709T132302Z&HW-CC-Expire=86400&HW-CC-Sign=3AA720B66EBA6E9ABD758C0C95055A14C830AE01B1FDB3D0AE10A402B8F9E86A)
    
*   胶囊样式进度条
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/e5/v3/R8cXWaHsSEKu29B81VDSyA/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260709T132302Z&HW-CC-Expire=86400&HW-CC-Sign=0254492D51553BF8EB1731D27399EB895E49B9E9FD9A3AD3DD668B50653C6ABC)
    
    *   头尾两端圆弧处的进度展示效果与ProgressType.Eclipse样式一致。
        
    *   中段处的进度展示效果为矩形状长条，与ProgressType.Linear线性样式相似。
        
    *   组件高度大于宽度时，自适应垂直显示。
        
    
    Progress({ value: 10, total: 150, type: ProgressType.Capsule }).width(100).height(50)
    Progress({ value: 20, total: 150, type: ProgressType.Capsule }).width(50).height(100).color(Color.Grey)
    Progress({ value: 50, total: 150, type: ProgressType.Capsule }).width(50).height(100).color(Color.Blue).backgroundColor(Color.Black)
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/2a/v3/VXe0S3rbTtCnkxC_Uv1o-g/zh-cn_image_0000002664327701.png?HW-CC-KV=V1&HW-CC-Date=20260709T132302Z&HW-CC-Expire=86400&HW-CC-Sign=8EB54BF7BA074FDFE42671D60D5E1EDA32DCC12043DF87BE42712814CF720C6A)
    

#### 场景示例

更新当前进度值，如应用安装进度条，可通过点击Button增加progressValue，value属性将progressValue设置给Progress组件，进度条组件即会触发刷新，更新当前进度。

@Entry
@Component
struct ProgressCase1 {
  @State progressValue: number = 0;    // 设置进度条初始值为0
  build() {
    Column() {
      Column() {
        Progress({value:0, total:100, type:ProgressType.Capsule}).width(200).height(50).value(this.progressValue)
        Row().width('100%').height(5)
        // 请将$r('app.string.progress\_add')替换为实际资源文件，在本示例中该资源文件的value值为"进度条+5"
        Button($r('app.string.progress\_add'))
          .onClick(()=>{
            this.progressValue += 5;
            if (this.progressValue > 100){
              this.progressValue = 0;
            }
          })
      }
    }.width('100%').height('100%')
  }
}

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/59/v3/8ug0c0I5TnudjNdKLrB87A/zh-cn_image_0000002633848592.gif?HW-CC-KV=V1&HW-CC-Date=20260709T132302Z&HW-CC-Expire=86400&HW-CC-Sign=0E997E1353158FC400DBCA5224E916298F4BC6AFEDE3242F868435D498E33630)