NativeScript动画只需触发一次

时间:2016-10-07 17:52:34

标签: android angular nativescript

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

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

    }

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

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:2)

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

不确定它是否真的像这样,但是你可以在动画完成后手动将rotate属性设置为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);
}