1. 레이아웃 애니메이션 넣기

https://proandroiddev.com/enter-animation-using-recyclerview-and-layoutanimation-part-1-list-75a874a5d213


** <layoutAnimation> 요소에 duration 속성을 지정하지 않으면 애니메이션이 실행되지 않음.


2. 각 셀마다 애니메이션 나오게 하기

어댑터 안의 onBindHolder 내에 아래의 코드 삽입

(lastPosition은 어댑터 클래스의 전역 변수이며 초기값은 0 또는 -1)


if(position != lastPosition){

    Animation animation;

    if(position > lastPosition && position != 0) {

        animation = AnimationUtils.loadAnimation(holder.itemView.getContext(), R.anim.anim_slideup);    //아래로 스크롤 시 보여질 애니메이션

    }else{

        animation = AnimationUtils.loadAnimation(holder.itemView.getContext(), R.anim.anim_slidedown);    //위로 스크롤 시 보여질 애니메이션

    }

    holder.itemView.startAnimation(animation);

    lastPosition = position;

}


** 아이템을 추가 또는 삭제 할 때 lastPosition을 해당 아이템의 position으로 설정하면 추가/삭제 시 애니메이션 발생하지 않음.

ex )

private void add(int index, TextData data) {

    //데이터베이스에 데이터 넣기(단일)

    lastPosition = index;

    dataList.add(index, data);

    notifyItemInserted(index);

}


private void remove(TextData data) {

    //데이터베이스에서 데이터 지우기(단일)

    int removeIndex = dataList.indexOf(data);

    lastPosition = removeIndex;

    dataList.remove(removeIndex);

    notifyItemRemoved(removeIndex);

}


3. 기본 추가/삭제 애니메이션이 보여지길 원한다면.. 

notifyItemInserted, notifyItemRemoved를 적용(위의 코드의 파란색 형광펜 참조)

+ Recent posts