Как я могу сделать что-то, когда анимация заканчивается?

У меня есть ImageView , который я использую для демонстрации прогресса через анимацию . Когда я хочу показать свой прогресс, я делаю это:

animDrawable.start();
ObjectAnimator.ofFloat(view, "alpha", 1.0f).setDuration(300).start();

Когда я хочу скрыть спиннер, я делаю это:

ObjectAnimator.ofFloat(view, "alpha", 0.0f).setDuration(300).start();
animDrawable.stop();

Однако это влияет, что анимация немедленно останавливается. Я хотел бы, чтобы это останавливалось только после того, как объект полностью исчезло до 0,0 альфа. Есть ли способ настроить что-то вдоль линий «анимационного обеспечения» обратного вызова?

46
задан i_am_jorf 1 September 2011 в 17:20
поделиться

1 ответ

С androidx можно использовать doOnEnd метод, который вызвал, когда анимация закончилась

val anim = ObjectAnimator.ofFloat(eva_image, View.TRANSLATION_Y, 0f, 500f)
anim.setDuration(500)
anim.doOnEnd { Toast.makeText(this, "Anim End", Toast.LENGTH_SHORT).show() }
anim.start()
1
ответ дан 26 November 2019 в 20:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: