[android] MVVM – 5. RecyclerView

[android] MVVM – 5. RecyclerView

================ 2017.06.07 수정 ================

https://stackoverflow.com/documentation/android/169/recyclerview/18296/recyclerview-with-databinding#t=201706071246198231184 의 ViewHolder 를 적용했다.

 


얼른 넘어가야하는데, 손이 안 가서 실력이 안 늘고 있는 RecyclerView도 써보자. 아무래도 ListView가 손에 익다보니 쉽고 빠르게 하다보니  RecyclerView는 진짜 꼭 필요할 때만 사용하는데, 새로 나온 걸 좋아하는 성격상 뭔가 마음 속 한 구석이 불편하다. 성능도 더 좋아졌고, 커스터마이징하기도 좋은데, 왜 손이 안 가는지 모르겠다.  이번에 하는 프로젝트는 ListView를 쓰지않고 모두 다 RecyclerView를 써봐야겠다.

 

 

먼저 관련 라이브러리를 추가한다.

 

RecyclerView는 기본적으로 행 구분선이 없기 때문에 데코레이터를 추가해줘야 한다.

 

 

화면을 그린다.

여기에는 이전의 ListView 예제에서 사용한 UsersViewModel을 그대로 사용한다.

만약 레이아웃에서 RecyclerView의 방향을 Vertical이 아닌 Horizontal로 하고 싶을 땐 어떻게 해야하는지는 못 찾았다.

 

 

 

RecyclerView의 한 행을 표시할 때 사용할 뷰홀더를 만들어 준다.

이 클래스는 다른 RecyclerView에서도 바로 사용할 수 있다.

 

 

RecyclerView에서 사용할 어댑터를 만든다.

ListView처럼 notifyDataSetChanged() 를 호출하면 화면이 번쩍거리니까 반드시 notifyItemInserted() 를 호출해야 한다.

 

 

 

액티비티에서는 어댑터와 데코레이터에 관한 정보를 받아서 처리한다.

 

 

이런 식으로 잘 나온다.