android - nineoldandroid AnimatorListener 被调用多次

标签 android nineoldandroids

嗨,我正在尝试制作一系列动画,但它失败了。当它只是 4.0 时它工作得很好,但我使用 nineoldandroid 添加了对 2.2 和 2.3 的支持。它看起来可以工作,但是 AnimatorListener 的方法 onAnimationEnd 被调用了两次。

这是我用于动画的代码:

animate(horizontalView)
   .translationX(xDelta)
   .setDuration(2000)
   .setListener(new Animator.AnimatorListener() {
      //listener implementation onAnimationEnd
      @Override
      public void onAnimationEnd(Animator animator) {
         animate(droppingView)
              .translationY(yDelta)
              .setDuration(2000)
              .setListener(null)
              .start();
      }
   }).start();

第一个动画触发监听器两次,第二个动画触发监听器 3 次。根据我的测试,这只发生在 2.2 和 2.3 上。

最佳答案

您是否尝试过删除旧的监听器

animate(horizontalView)
   .translationX(xDelta)
   .setDuration(2000)
   .setListener(new Animator.AnimatorListener() {
      //listener implementation onAnimationEnd
      @Override
      public void onAnimationEnd(Animator animator) {
         animator.removeListener(this); // << this
         animate(droppingView)
              .translationY(yDelta)
              .setDuration(2000)
              .setListener(null)
              .start();
      }
   }).start();

关于android - nineoldandroid AnimatorListener 被调用多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24572832/

相关文章:

java - 我如何通过android中的 Activity 发送图像

android - 我可以将文本放在 ListView 元素的左侧和右侧吗?

java - 将多个 android 设备连接到 "main"pc 应用程序

android - 在后台检查互联网连接

android - HTC One X - Webview 触摸后变白/空

android - NineOldAndroids 中的 LayoutTransition 类..?

android - setPivotX 不适用于 android 4.1.1 NineOldAndroids

android - NoClassDefoundError nineoldAndroid

android - 使用 proguard 混淆 nineoldandroids 和 android-switch-backport