如何在滚动时为recyclelerview项目制作动画?

时间:2016-06-29 17:32:14

标签: android animation android-recyclerview onscrolllistener

我正在使用自定义RecyclerView的{​​{1}}。 我希望在向下滚动时更改RecyclerViewOnScrollListener项高度,并在向上滚动时返回原始高度。

我已经在同一个监听器中为bottomBar制作动画,但我无法理解如何在RecyclerView中为每个项目制作动画。我尝试过for循环,但我不认为这是正确的想法。

RecyclerView

1 个答案:

答案 0 :(得分:0)

定义一种方法,为ConvertView设置动画,如下所示:

private void setAnimation(View viewToAnimate,int position) {
      if (position > lastPosition) {
         lastPosition = position;
         Animation animation = AnimationUtils.loadAnimation(activity, R.anim.anim_content);
         viewToAnimate.startAnimation(animation);
      }
}

在适配器的onBindViewHolder方法中调用动画方法:

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
     // Do your initialization
     setAnimation(holder.convertView, position);
}

这里是动画:(anime_content.xml)

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromYDelta="25%p"
    android:toYDelta="0%p"
    android:duration="300"
    android:interpolator="@android:anim/decelerate_interpolator" />

此示例将为您上次充气的回收者视图行设置从下到上的动画。你可以随心所欲地改变你的动画。

祝你好运!