HarmonyOS animation动画停止位置不对

animation动画停止的位置,我想恢复初始位置,现在的实际效果是,哪里停止就在哪里,没办法恢复到初始位置。默认rotateAngle=0,开始时设置rotateAngle=360,请求完成数据后,再次设置rotateAngle=0,动画停止。但是停止的位置不是0的角度,选装中在哪里停止,就是那个角度了。

Image($r('app.media.icon_stock_refresh_blue'))
  .width(16)
  .height(16)
  .objectFit(ImageFit.Contain)
  .margin({ left: 12 })
  .rotate({ angle: this.data.rotateAngle })
  .animation({
    duration: 300,
    curve: Curve.Linear,
    delay: 0,
    iterations: -1, // 设置-1表示动画无限循环
    playMode: PlayMode.Normal
  })
  .onClick(() => {
    this.homepageModel.reloadEvalStocks(this.parentData, true)
  })

setAnimState(isStart: boolean) {
  if (isStart) {
    this.rotateAngle = 360
  } else {
    this.rotateAngle = 0
  }
}
HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

参考以下demo,demo里使用定时器来模拟的异步请求

@Entry
@Component
struct AnimateToExample {
  @State rotateAngle: number = 0
  @State animationRunning: boolean = false
  build() {
    Column() {
      Image($r('app.media.app_icon'))
        .width(50)
        .height(50)
        .objectFit(ImageFit.Fill)
        .margin(50)
        .rotate({ x: 0, y: 0, z: 1, angle: this.rotateAngle })
        .onClick(() => {
          if (!this.animationRunning) {
            this.animationRunning = true;
            this.startAnimation();
          }
        })

    }.width('100%').margin({ top: 5 })
  }

  startAnimation() {
    animateTo({
      duration: 800,
      curve: Curve.Linear,
      iterations: -1, // 设置-1表示动画无限循环
    }, () => {
      this.rotateAngle = 360;
    });

    setTimeout(() => {
      this.stopAnimation();
    }, 2000);
  }

  stopAnimation() {
    animateTo({
      duration: 0,
      curve: Curve.Linear,
      iterations: 1,
    }, () => {
      this.rotateAngle = 0;
      this.animationRunning = false;
    });
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 绝对布局位置不对
347浏览 • 0回复 待解决
animateTo动画如何直接停止
2556浏览 • 2回复 待解决
HarmonyOS 属性动画中途如何停止
424浏览 • 1回复 待解决
HarmonyOS 如何停止无限旋转中的动画
26浏览 • 1回复 待解决
服务卡片的进度条如何停止动画
8859浏览 • 1回复 待解决
HarmonyOS avplayer错误码好像不对
40浏览 • 1回复 待解决
如何停止UIAbility自身
2025浏览 • 1回复 待解决
HarmonyOS Flex组件存在问题,UI不对
69浏览 • 1回复 待解决