build.gradle
compile 'jp.wasabeef:recyclerview-animators:2.2.6'
MainActivity.java
public class MainActivity extends AppCompatActivity { Button buttonAdd; Button buttonRemove; RecyclerView recyclerView; List<Integer> integerList = new ArrayList<>(); RecyclerView.Adapter adapter; RecyclerView.LayoutManager layoutManager; Random random = new Random(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); buttonAdd = (Button) findViewById(R.id.buttonAdd); buttonRemove = (Button) findViewById(R.id.buttonRemove); buttonAdd.setOnClickListener(buttonAdd_OnClickListener); buttonRemove.setOnClickListener(buttonRemove_OnClickListener); for (int i = 0; i < 1000; i++) { integerList.add(random.nextInt()); i++; } recyclerView = (RecyclerView) findViewById(R.id.recyclerView); RecyclerView.ItemDecoration itemDecoration = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL); recyclerView.addItemDecoration(itemDecoration); recyclerView.setHasFixedSize(false); layoutManager = new LinearLayoutManager(this); recyclerView.setLayoutManager(layoutManager); recyclerView.setItemAnimator(new OvershootInRightAnimator()); recyclerView.getItemAnimator().setAddDuration(1000); recyclerView.getItemAnimator().setRemoveDuration(1000); adapter = new NumberAdapter(integerList); SlideInLeftAnimationAdapter slideAdapter = new SlideInLeftAnimationAdapter(adapter); slideAdapter.setDuration(1000); recyclerView.setAdapter(slideAdapter); } View.OnClickListener buttonAdd_OnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { Integer num = random.nextInt(); integerList.add(0, num); //adapter.notifyDataSetChanged(); adapter.notifyItemInserted(0); recyclerView.scrollToPosition(0); } }; View.OnClickListener buttonRemove_OnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { integerList.remove(0); adapter.notifyItemRemoved(0); } }; }
References
https://raw.githubusercontent.com/mhdr/AndroidSamples/master/086/images/01.gif
https://github.com/wasabeef/recyclerview-animators