RecyclerView ItemAnimator动画集 本项目针对低版本Android API兼容(NineOldAndroids)
- 源代码转载于 recyclerview-animators.
Set RecyclerView ItemAnimator.
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.list); recyclerView.setItemAnimator(new SlideInLeftAnimator());
You can change the durations.
recyclerView.getItemAnimator().setAddDuration(1000); recyclerView.getItemAnimator().setRemoveDuration(1000); recyclerView.getItemAnimator().setMoveDuration(1000); recyclerView.getItemAnimator().setChangeDuration(1000);
By extending AnimateViewHolder, you can override preset animation. So, custom animation can be set depeding on view holder.
static class MyViewHolder extends AnimateViewHolder { public MyViewHolder(View itemView) { super(itemView); } @Override public void animateRemoveImpl(ViewPropertyAnimatorListener listener) { ViewCompat.animate(itemView) .translationY(-itemView.getHeight() * 0.3f) .alpha(0) .setDuration(300) .setListener(listener) .start(); } @Override public void preAnimateAddImpl() { ViewCompat.setTranslationY(itemView, -itemView.getHeight() * 0.3f); ViewCompat.setAlpha(itemView, 0); } @Override public void animateAddImpl(ViewPropertyAnimatorListener listener) { ViewCompat.animate(itemView) .translationY(0) .alpha(1) .setDuration(300) .setListener(listener) .start(); } }
LandingAnimator
ScaleInAnimator, ScaleInTopAnimator, ScaleInBottomAnimator
ScaleInLeftAnimator, ScaleInRightAnimator
FadeInAnimator, FadeInDownAnimator, FadeInUpAnimator
FadeInLeftAnimator, FadeInRightAnimator
FlipInTopXAnimator, FlipInBottomXAnimator
FlipInLeftYAnimator, FlipInRightYAnimator
SlideInLeftAnimator, SlideInRightAnimator, OvershootInLeftAnimator, OvershootInRightAnimator
SlideInUpAnimator, SlideInDownAnimator
Set RecyclerView ItemAnimator.
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.list); MyAdapter adapter = new MyAdapter(); recyclerView.setAdapter(new AlphaInAnimationAdapter(adapter));
Change the durations.
MyAdapter adapter = new MyAdapter(); AlphaInAnimationAdapter alphaAdapter = new AlphaInAnimationAdapter(adapter); alphaAdapter.setDuration(1000); recyclerView.setAdapter(alphaAdapter);
Change the interpolator.
MyAdapter adapter = new MyAdapter(); AlphaInAnimationAdapter alphaAdapter = new AlphaInAnimationAdapter(adapter); alphaAdapter.setInterpolator(new OvershootInterpolator()); recyclerView.setAdapter(alphaAdapter);
Disable the first scroll mode.
MyAdapter adapter = new MyAdapter(); AlphaInAnimationAdapter alphaAdapter = new AlphaInAnimationAdapter(adapter); scaleAdapter.setFirstOnly(false); recyclerView.setAdapter(alphaAdapter);
Multiple Animations
MyAdapter adapter = new MyAdapter(); AlphaInAnimationAdapter alphaAdapter = new AlphaInAnimationAdapter(adapter); recyclerView.setAdapter(new ScaleInAnimationAdapter(alphaAdapter));
AlphaInAnimationAdapter
ScaleInAnimationAdapter
SlideInBottomAnimationAdapter
SlideInRightAnimationAdapter, SlideInLeftAnimationAdapter