我无法弄清楚这段代码有什么问题。我通过调用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:我没有取消/结束通话。

最佳答案

可能有点晚了,但是对我有用的是在onAnimationEnd()中使用处理程序

@Override
public void onAnimationEnd(Animator animator) {
    mHandler.post(new Runnable() {
        @Override
        public void run() {
            animatorSet.start();
        }
    });
}


这不是必须的,因为onAnimationEnd()已经在主线程上执行,但这正是我的工作。

07-24 09:33