#android #kotlin #android-animation
#Android #kotlin #android-анимация
Вопрос:
val anim = swipe.animate()
.rotationBy((-30).toFloat())
.setDuration(1000)
.translationX((-swipe.left).toFloat())
.setInterpolator(AccelerateDecelerateInterpolator())
anim.start()
Мне нужен прослушиватель завершения анимации, я пробовал:
anim.setAnimationListener(object : Animation.AnimationListener {
override fun onAnimationStart(p0: Animation?) {
}
override fun onAnimationRepeat(p0: Animation?) {
}
override fun onAnimationEnd(p0: Animation?) {
}
})
но получите эту ошибку
Неразрешенная ссылка: setAnimationListener
Как это сделать правильно?
Комментарии:
1. Как насчет аниматора. AnimationListener { … } ?
Ответ №1:
Основная причина
В классе ViewPropertyAnimator нет имени метода setAnimationListener
.
anim.withEndAction {
// Your code logic goes here.
}
Решение 2
anim.setListener(object : Animator.AnimatorListener {
override fun onAnimationRepeat(animation: Animator?) {}
override fun onAnimationCancel(animation: Animator?) {}
override fun onAnimationStart(animation: Animator?) {}
override fun onAnimationEnd(animation: Animator?) {
// Your code logic goes here.
}
})
Примечание: Не забудьте отменить анимацию, если пользователи покидают экран во время анимации.
swipe.animate().cancel()