У меня есть RecyclerViewAdapter, и мне нужно, чтобы элементы анимировались, когда они впервые появляются на экране (т.е. при прокрутке вниз), но только один раз, когда они появляются впервые, после этого, когда пользователь прокручивает вверх, он не должен 'Не может быть никакой анимации.
Мой код теперь работает отлично, за исключением этого последнего элемента, он всегда снова и снова анимируется, когда я прокручиваю его вниз.
private Integer lastPosition = -1;
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
holder.setIsRecyclable(false);
// Animations
// If the bound view wasn't previously displayed on screen, it's animated
if (position > lastPosition) {
holder.mImage.setAnimation(AnimationUtils.loadAnimation(context, R.anim.first_animation));
holder.mView.setAnimation(AnimationUtils.loadAnimation(context, R.anim.second_animation));
lastPosition = position -1;
}
}
И если я установлюlastPosition = position;
Я загружаю только первые несколько загруженных элементов (и видимых в зависимости от размера экрана), и когда я прокручиваю их вниз, они вообще не анимируются.
Почему такое поведение?Как все примеры, найденные здесь для анимации элементов с прокруткой в первый раз, используя их
lastPosition = position;
Но мой отказывает?
Мой RecyclerAdapter фильтруется (implements Filterable
), если это будет любойсуть вопроса.