package com.github.takahirom.materialelement.main;
import android.support.v4.view.animation.LinearOutSlowInInterpolator;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.github.takahirom.materialelement.R;
import com.github.takahirom.materialelement.util.ScreenUtil;
public class AnimateRecyclerAdapter extends RecyclerView.Adapter {
int animatedRow = -1;
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_row_card, parent, false);
return new RecyclerView.ViewHolder(view) {
};
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (position > animatedRow) {
// https://www.youtube.com/watch?feature=player_detailpage&v=6p3i6H2oGa0#t=602
animatedRow = position;
long animationDelay = 1000 + holder.getAdapterPosition() * 25;
holder.itemView.setAlpha(0);
holder.itemView.setTranslationY(ScreenUtil.dp2px(16, holder.itemView.getContext()));
holder.itemView.animate()
.alpha(1)
.translationY(0)
.setDuration(200)
.setInterpolator(new LinearOutSlowInInterpolator())
.setStartDelay(animationDelay)
.start();
}
}
@Override
public int getItemCount() {
return 4;
}
}