У меня есть пользовательский вид и пользовательская анимация. Мой пользовательский вид переопределяет onAnimationEnd, и мой пользовательский класс класса анимации переопределяет applyTransformation соответственно.
Я обнаружил, что applyTransformation все равно вызывается после вызова onAnimationEnd.
Я пробовал использовать предоставленное здесь решение, но все же он не работает.
Я столкнулся с этим вопросом некоторое время назад и проследил его до проблемы с Android-трекером. Я не уверен, что он все еще там, или если он был исправлен, но в то же время я работал вокруг него с небольшим взломом:
class SomeClass {
private bool mAnimationEnded = true;
private void SomeMethod() {
Animation animation = new Animation() {
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
if (mAnimationEnded) return;
// ...
}
}
animation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
mAnimationEnded = true;
// ...
}
@Override
public void onAnimationStart(Animation animation) {
mAnimationEnded = false;
// ...
}
@Override
public onAnimationRepeat(Animation animation) { }
}
// ... Use animation here
}
}