【问题标题】:NativeScript animation just firing onceNativeScript 动画只触发一次
【发布时间】:2016-10-07 17:52:33
【问题描述】:

我有一个包含 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 设备对其进行调试。

有什么想法吗?谢谢!

【问题讨论】:

    标签: android angular nativescript


    【解决方案1】:

    显然在旋转之后,元素的“旋转”属性不会重置为其初始值。这意味着在第一次点击时,您的旋转属性从 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);
    }
    

    【讨论】:

    • 天哪,我认为“动画”方法只是暂时影响了元素!我没想到它可以将“旋转”属性设置为 360!谢谢!您能告诉我 NativeScript 文档中列出的视图属性在哪里吗?
    猜你喜欢
    • 2012-08-10
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    相关资源
    最近更新 更多