下载完成后，进度条回滚
===========

#### 问题现象

下载文件已成功，但下载进度条达到百分百后，存在回退现象。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/a0/v3/7AJZnCOhS9S80UxGfEPlSQ/zh-cn_image_0000002658965031.png?HW-CC-KV=V1&HW-CC-Date=20260709T134022Z&HW-CC-Expire=86400&HW-CC-Sign=13925CC03A7D779AD1D0CE8E30444D0E5D7D7582D5FE6D28C8C1FA7BFC3A7801 "点击放大")

#### 背景知识

[Progress](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-progress)：进度条组件，用于显示内容加载或操作处理等进度。

#### 问题定位

排查代码中Progress组件中value的值，value是指当前进度值。如果value的值在达到100后，重新对value赋值，且赋值小于100，就会产生进度条回退动效。

_// 监听下载进度回调的方法_
onProgressUpdate(progress: number) {
  if (progress >= 100) {
    this.getUIContext().getPromptAction().showToast({
      message: '已保存至相册！'
    })
    _// 进度条为100时，将进度条赋值为-1_
    this.value = -1;
  } else {
    this.value = progress;
  }
}

#### 分析结论

下载进度条达到百分百后，重新对value赋值，且赋值小于100。

#### 修改建议

下载完成后，建议不对value重新赋值。

@Entry
@Component
struct ProgressTest {
  @State value: number = 40;
  total: number = 100; _// 进度总长_

  onProgressUpdate(progress: number) {
    if (progress >= 100) {
     _ // 进度条达到100后，不对value重新赋值_
      return;
    } else {
      this.value = progress;
    }
  }

  build() {
    Column({ space: 20 }) {
      Text('进度条')
      Progress({ value: this.value, total: this.total, type: ProgressType.Capsule })
        .color('#FF46B1E3')
       _ // 限制Progress组件的宽高_
        .width(30)
        .height(200)
        .backgroundColor('#4d46b1e3')
       _ // 旋转180度，进度条方向改为从底部开始向上_
        .rotate({
          angle: 180
        })
      Button('value +20')
        .backgroundColor('#0A59F7')
        .onClick(() => {
          this.value += 20;
          this.onProgressUpdate(this.value);
        })
    }
    .justifyContent(FlexAlign.Center)
    .width('100%')
    .height('100%')
  }
}

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/42/v3/aWcZz3njRHSGTDy30jZNig/zh-cn_image_0000002628605826.png?HW-CC-KV=V1&HW-CC-Date=20260709T134022Z&HW-CC-Expire=86400&HW-CC-Sign=4A8C5396019EC2E6B110DE3F59EF92BA6E6A6D3173574666E490D55A872572C3 "点击放大")