我无法弄清楚这段代码有什么问题。我通过调用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()
已经在主线程上执行,但这正是我的工作。