即使在回调中使用AnimatorSet也不会重复

时间:2015-03-14 14:10:06

标签: android animation

我无法弄清楚这段代码有什么问题。我通过调用Animator方法一起播放两个AnimatorSet.playTogether()。但onAnimationEnd()回调仅被称为ONCE。为什么会这样?

indeterminateAnimatorSet.addListener(object: AnimatorListenerAdapter() {

    override fun onAnimationEnd(animation: Animator) {
        indeterminateAnimatorSet.start() // <= This one is called only ONCE!
    }
})

indeterminateAnimatorSet.start() // <= 1st call here to start the animation

PS:我没有取消/结束通话。

1 个答案:

答案 0 :(得分:1)

可能有点晚了,但对我有用的是在onAnimationEnd()

中使用处理程序
@Override
public void onAnimationEnd(Animator animator) {
    mHandler.post(new Runnable() {
        @Override
        public void run() {
            animatorSet.start();
        }
    });
}

这不应该是必要的,因为onAnimationEnd()已经在主线程上执行,但这就是为我做的。