NativeScript 动画只触发一次

NativeScript animation just firing once

我有一个包含 ListView 的 NativeScript 项目。我使用了它的事件 "onItemTap" 这是我写的函数:

   onItemTap(args){
      let clicked = args.view.bindingContext;
      let fav = this.page.getViewById("star-"+clicked.id);
      fav.animate({
          rotate: 360,
          duration: 1000
      });

    }

基本上我正在检索我单击的项目,在项目内部有一个标签,其 id "star-N" [N 是项目的 intex],我正在为它制作动画。 它工作正常,问题是它只工作一次!从第二次点击开始,它不再有动画。控制台未返回任何错误。我正在使用我的 Android 设备对其进行调试。

有什么想法吗?谢谢!

显然在旋转之后,元素的 "rotate" 属性 没有重置为初始值。这意味着在第一次点击时,你的旋转 属性 从 0 => 360 开始,然后在第二次点击时从 360 => 360 开始,所以没有动画发生。

不确定是否真的打算这样,但您始终可以在动画完成后手动将旋转 属性 设置为 0:

onItemTap(args) {
    let clicked = args.view.bindingContext;
    let fav = this.page.getViewById("star-"+clicked.id);
    fav.animate({
        rotate: 360,
        duration: 1000
    }).then(() => fav.rotate = 0);
}