Анимация перевода пользовательского вида не работает внутри recycler view

#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