Я пытаюсь реализовать логику c для анимации Recyclerview при прокрутке сверху вниз и снизу вверх. Есть две анимации. Один для прокрутки сверху вниз, а другой - снизу вверх.
Я помещаю логи c в onbindViewHolder из recyclerview.
int lastPosition=-1;
@NonNull
@Override
public Viewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
MoreOptionsListBinding moreOptionsListBinding = MoreOptionsListBinding.
inflate(layoutInflater, parent, false);
return new Viewholder(moreOptionsListBinding);
}
@Override
public void onBindViewHolder(@NonNull
Viewholder holder,int position) {
Animation animation = AnimationUtils.loadAnimation(context,
(position > lastPosition) ? R.anim.up_from_bottom
: R.anim.down_from_up);
holder.itemView.startAnimation(animation);
lastPosition = position;
MoreOptionsModel moreOptionsModel = moreOptionsModelArrayList.get(position);
holder.bind(moreOptionsModel);
}
А классы анимации
up_from_bottom. xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="@android:anim/decelerate_interpolator">
<translate
android:fromXDelta="0%" android:toXDelta="0%"
android:fromYDelta="100%" android:toYDelta="0%"
android:duration="400" />
</set>
down_from_up. xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="@android:anim/decelerate_interpolator">
<translate
android:fromXDelta="0%" android:toXDelta="0%"
android:fromYDelta="-100%" android:toYDelta="0%"
android:duration="400" />
</set>
Моя проблема заключается в том, что анимация работает при прокрутке сверху вниз и снизу вверх, но для некоторых анимаций средних строк не работает Любая помощь приветствуется.