Я добавил анимацию при нажатии на некоторые элементы кнопок в режиме рециркуляции.
Все работает гладко, однако, когда я прокручиваю список вниз, некоторые кнопки появляются в странном состоянии, как будто они были заморожены во время фазы анимации, даже если анимация не запускалась для этих кнопок, в то время как для других их вид устанавливается на невидимый /ушел.
Это часть кода анимации сжатия, где сжатие является объектом ValueAnimator.
shrink.addUpdateListener { animation ->
val animatedValue = animation.animatedValue as Int
v.layoutParams.width = animatedValue
v.requestLayout()
}
shrink.addListener(object : AnimatorListenerAdapter() {
override fun onAnimationStart(animation: Animator) {
super.onAnimationStart(animation)
v.visibility = View.VISIBLE
v.isEnabled = false
}
override fun onAnimationEnd(animation: Animator) {
super.onAnimationEnd(animation)
v.layoutParams.width = 0
v.visibility = View.GONE
v.isEnabled = false
}
}
У меня есть классы View
и ViewHolder
, в которых я связываю видимость элементов представления корзины при прокрутке.
Есть ли какой-то шаг, который я пропустил в жизненном цикле анимации для совместной работы с элементами представления повторного просмотра? Я думал, что, возможно, я должен позаботиться о onAnimationStop
или onAnimationPause
случаях, но я не уверен.
Любая помощь будет высоко ценится.