HarmonyOS animateTo的duration无效

使用animateTo修改Circle的value,但是动画时间感觉一直都是1秒,设置了duration也没有用

@Entry
@Component
export struct Index3 {
  @State countDownProgress: number = 0;

  build() {
    Column() {

      Button('动画')
        .onClick(() => {
          animateTo( {
            duration: 16000,
          },() => {
            this.countDownProgress = 1;
          })
        })
      Progress({
        value: this.countDownProgress,
        total: 1,
        type: ProgressType.Ring
      })
        .width(60)
        .height(60)
        .color(Color.Blue)
        .style({
          strokeWidth: 2,
        })
    }
  }
}
HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

animateTo动画中duration最长动画时间就是1S,超过1000系统默认为1000,以下有一个实现进度条动画demo,可参考以下:

@Entry
@Component
export struct ReverseProgress {
  @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
                }
              }, 10)
            }
            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
微信
回复
2天前
相关问题
HarmonyOSanimateTo如何结束动画
862浏览 • 2回复 待解决
animateTo动画如何直接停止
2564浏览 • 2回复 待解决
animateTo动画如何暂停
917浏览 • 2回复 待解决
HarmonyOS animateTo是否能够打断动画
52浏览 • 1回复 待解决
CommonDialogsetSwipeToDismiss(false)无效
6382浏览 • 1回复 待解决
HarmonyOS designWidth设置无效
40浏览 • 1回复 待解决
notifyDataChanged() 无效
6560浏览 • 4回复 待解决
HarmonyOS 设置 bodercolor 无效
355浏览 • 1回复 待解决
HarmonyOS appRecovery.restartApp无效
338浏览 • 1回复 待解决
HarmonyOS Text内部Span宽度设置无效
45浏览 • 1回复 待解决
HarmonyOS React-Navigation无效
37浏览 • 1回复 待解决
HarmonyOS 复制黏贴功能无效
317浏览 • 1回复 待解决
HarmonyOS 读取相册图片无效
26浏览 • 1回复 待解决
HarmonyOS 更换图标无效
252浏览 • 2回复 待解决
HarmonyOS bindPopup设置color无效
825浏览 • 0回复 待解决