package com.lin.poweradapter;
import android.animation.Animator;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.animation.Interpolator;
import android.view.animation.LinearInterpolator;
/**
* Created by lin18 on 2017/5/3.
*/
public abstract class AnimatorAdapter<VH extends RecyclerView.ViewHolder> extends SelectableAdapter<VH> {
private int mDuration = 300;
private Interpolator mInterpolator = new LinearInterpolator();
private int mLastPosition = -1;
private boolean isFirstOnly = true;
@Override
public void onBindViewHolder(VH holder, int position) {
super.onBindViewHolder(holder, position);
final Animator[] animators = getAnimators(holder.itemView);
if (animators != null) {
int adapterPosition = holder.getAdapterPosition();
if (!isFirstOnly || adapterPosition > mLastPosition) {
for (Animator anim : animators) {
anim.setDuration(mDuration).start();
anim.setInterpolator(mInterpolator);
}
mLastPosition = adapterPosition;
} else {
ViewHelper.clear(holder.itemView);
}
}
}
public void setFirstOnly(boolean firstOnly) {
isFirstOnly = firstOnly;
}
protected Animator[] getAnimators(View view) {
return null;
}
}