HarmonyOS Progress组件进度从0到100循环动画如何实现

HarmonyOS
23h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

示例如下:

@Entry
@Component
struct Index {
  @State progressValue: number = 100
  @State animationId: number | null = null
  build() {
    NavDestination() {
      Column({ space: 15 }) {
        Progress({ value: 0, total: 100, type: ProgressType.Ring })
          .color('#A97CF9')
          .value(this.progressValue)
          .width(100)
          .style({
            strokeWidth: 10,
            scaleCount: 20,
            scaleWidth: 5,
            enableSmoothEffect: true
          })
          .backgroundColor(Color.White)
          .rotate({
            x: 0,
            y: 1,
            z: 0,
            centerX: '50%',
            centerY: '50%',
            angle: 180
          })
        Button('开始动画')
          .onClick(() => {
            if (this.animationId === null) {
              this.animationId = setInterval(() => {
                this.progressValue--
                if (this.progressValue == 0) {
                  this.progressValue = 100
                }
              }, 20)
            }
            console.log(this.animationId.toString())
          })
        Button('结束动画').onClick(() => {
          clearInterval(this.animationId)
          this.animationId = null
          this.progressValue = 100
        })
      }.width('100%').padding({ top: 5 }).backgroundColor(Color.Red)
    }
  }
}
分享
微博
QQ
微信
回复
21h前
相关问题
Progress进度如何实现渐变色?
863浏览 • 1回复 待解决
基于Progress组件进度
572浏览 • 1回复 待解决
HarmonyOS Progress UI控件的进度控制
472浏览 • 2回复 待解决
如何通过Progress实现loading效果?
436浏览 • 1回复 待解决
TransitionEffect动画循环播放如何关闭
1850浏览 • 1回复 待解决
服务卡片的进度如何停止动画
8859浏览 • 1回复 待解决