嗨,我正在尝试制作一系列动画,但它失败了。当它只是 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/