본문 바로가기

리사이클러뷰

Diffutil 에 대한 정리 diffutill은 예전에 솝트 과제에서 사용했었지만 그때는 코드를 긁어와서 넣기만했지 이해도는 거의 없었다. 사실근데 따지고들면 코드 그냥 긁어와서 사용하는게 맞기는하다 그래도 어느정도는 이해가 필요하고 변형을 해야하기 때문에 정리해보겠다. 우선 이론적인걸 조금 집고 넘어가보자 diffutil은 RecyclerView에 표현할 데이터를 업데이트하기 위해 주로 사용하는 notifyDataSetChanged()를 대체하기위해서 사용하는것이다. notifyDataSetChanged()를 사용하면, Adapter에게 RecyclerView의 데이터가 바뀌었으니 모든 항목을 통째로 업데이트를 하라는 신호를 보낸다. 이 방법은 모든 데이터를 다시 그리기 때문에 굉장히 비효율적이다. 고로 변경된 데이터에 한해서만 .. 더보기
리사이클러뷰 ItemDecoration 대체하기 지금 바빠서 간단히 기록하지만 나중에 다시 자세히 작성하겠다. 원래 리사이클러뷰 간격 문제로 ItemDecoration을 써야하는거로 알고있었다 하지만 숫자 값을 넣어주면 막 px값이라dp로 변환해야하고 막 난리 부르스였다. 그때 연주가 나타나서 신박하고 좋은 방법을 제시해주었다. item에 paddingTop로 내가 원하는 간격만큼 주고 이렇게 되면 마지막에 padding이 안잡히는 부분은 리사이클러뷰 자체로 가서 paddingBottom을 주고 마지막에 clipToPadding 속성을 false로 주면 리사이클러뷰 마지막에 padding이 16dp 가 걸려 원래 원하던 바를 이룰수있다 . 진짜 너무너무 좋다 연주는 천재인거같다. 원래 사용하던 ItemDecoration 요거에서 offset값 조절해주.. 더보기
리사이클러 뷰에 databinding적용해보기 사실 3주차 과제정리에 쭉해놨고 실제로 적용도 했다 하지만 빡갈통인 날 믿을수없어 나중에 찾아헤멜것을 걱정해서 다시 한번 정리한다. 두괄식으로 결론부터 말하자면 data를 적용하는 xml은 각 리사이클러 뷰의item xml파일에 를 넣어주고 각각 viewholder에서 데이터를 각각 받아온것들을 집어넣어주는 형태이다 viewholder에서는 각각 xml들을 갖고있을테니까 ㅎㅎ 그래서 실제로해본것을 정리했다 dataBinding을 리사이클러 뷰에 적용하기 리펙토링을 해보자 1. 당연히 gradle추가해주고 android { ... dataBinding { enabled = true } } 2.리사이클러의 아이템뷰 의 xml을 으로 감싼다. 아이템을 감쌌다. 3.data variable 추가 layout안에.. 더보기