티스토리 뷰

예전에 리스트뷰 구현하던 방식으로 

리스트 뷰 한 줄에 들어갈 아이템을 위한 커스텀 레이아웃 하나 만들고,

리스트뷰 어댑터 하나 만들고,

프래그먼트에 리스트뷰 하나 넣어가지고 구현을 해놨더니

요즘..도 아니고 리스트 형식을 만들 때 커스터마이즈 하기 더 쉽게 만들어진 Recyclerview라는 게 있네요!


오.. 이게 바로 안드로이드 Gmail 어플에 들어가면 좌우로 당길 수 있게 만들 수 있는 그거군요~

괜찮다 싶어서 이걸로 급 바꾸기로 했습니다.

만들고 나니 리스트뷰와 전혀 다를 것 없지만 이런 그림이 나옵니다.




제공하는 메서드의 차이가 또 다르겠지만 이 둘을 구현하는데 있어서 대표적인 차이는 ViewHolder의 의무적인 존재 여부입니다.



ListView는 ViewHolder를 선택적으로 썼다면 RecyclerView는 어댑터 안에 필수적으로 구현하도록 되어 있습니다. 보통은 뷰 홀더를 쓰기도 하고 명시적으로 보이면 쓰기 편합니다.

그 외 나머지 XML 파일을 어댑터에서 inflate해서 데이터를 맵핑하고 프래그먼트나 액티비티에서는 어댑터를 사용해 뷰에 접근하는 방식은 똑같습니다.



ViewHolder는 말 그대로 리스트에 보여줄 아이템들 즉 각각의 뷰를 내가 사용할 수 있게 가지고 있는 역할을 하는 거죠

현재는 시간 (time) 과 그 시간에 어떤 일을 했는지 내용 (content) , 중요도 (i_switch), 긴급성 (u_switch)을 선택할 Switch 뷰를 우선 넣어 놓았습니다.

그래서 총 4가지 뷰가 뷰 홀더에 있는 거구요.


이 어댑터를 DayRecordFragment에서 선언을 하고, setAdapter를 해서 데이터를 넣어주면 완성됩니다.

현재까지 코드는 역시 GitHub에 올려져 있습니다.

https://github.com/HyeonjuPark/TimeManager.git




댓글