我有一个包含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设备进行调试。
有什么想法吗?谢谢!
答案 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);
}