#android #android-recyclerview #android-animation #translate-animation
#Android #android-recyclerview #android-анимация #перевести-анимация
Вопрос:
У меня есть пользовательский вид, и я добавил анимацию перевода при инициализации (onLoad). Он работает нормально, когда этот вид используется в обычном режиме. Но когда представление используется внутри макета строк recycler-view, анимация не выполняется должным образом. В некоторых нижних строках, имеющих этот пользовательский вид, не отображается анимация перевода. Приведенный ниже код написан в блоке инициализации. И Recyler-view реализованы как обычно.
init{
Handler().postDelayed({
val anim = AnimationUtils.loadAnimation(context,
R.anim.translate_alert_to_left)
startAnimation(anim)
}, 50)
}
Комментарии:
1. Спасибо @luciano за редактирование
Ответ №1:
Мне нужно было бы просмотреть больше вашего кода, но я предполагаю, что init
блок — это тот, который находится в вашем пользовательском представлении. На самом деле ее там не должно быть, попробуйте вставить ее onBindViewHolder
может сработать, но если вы должны запускать анимацию только тогда, когда она вам нужна, а не при создании представления
Комментарии:
1. Я хочу видеть скольжение вида всякий раз, когда вид отображается в первый раз на экране. Это может быть внутри режима recycler View или без режима recycler view. Поэтому привязка анимации к виду recycler не имеет смысла.
2. Итак, я добавил анимацию перевода, когда представление загружается внутри блока инициализации.
3. В этом случае вы можете переопределить onAttachedToWindow () в вашем CustomView и выполнить анимацию здесь
4. Я хочу, чтобы анимация выполнялась только один раз, также onAttachedToWindow () нарушает мое представление внутри recyclerview