개발자이야기
android recyclerview diffutil 본문
Diffutil ItemCallback 먼저 간단히 살펴보도록 하자
간단한 androidx.appcompat.widget.AppCompatRadioButton 클릭에 대한 예제로 작성되었습니다.
areItemsTheSame(T oldItem, T newItem)
두 개체가 동일한 항목을 나타내는 지 확인하기 위해 호출됩니다.
아이템의 고유한 키값을 사용하여 비교합니다.
areContentsTheSame(T oldItem, T newItem)
두 항목에 동일한 데이터가 있는지 확인하기 위해 호출됩니다
areItemsTheSame() 해당 함수가 true 일때만 호출된다. (areItemsTheSame() 함수에서 사용한 key값은 같은 아이템이지만 안의 내용물이 달라졌는지 확인)
간단한 recyclerview adapter 이다
setData(item: List<RadioDataModel>) 메소드 부분을 확인해보자
갱신될 아이템 리스트를 가지고 넘어와 diffutil.submitList(item) 만 호출해주면 된다. (내부적으로 어떻게 돌아가는지는 좀더 자세히 확인해봐야겠다)
diffutil 을 사용하여 더이상 비용 소모가 심한 notifyDataSetChanged() 메소드를 호출할 필요가 없다
그리고 편하다.
간단한 사용법만 작성했습니다.
부족한 부분이 많을 수 있습니다. 댓글로 개선점 언제든 환영하고 감사드립니다.
소스는 여기에..
https://github.com/boidmy/recyclerviewDiffUtil
'android' 카테고리의 다른 글
mvvm + dagger (0) | 2021.06.07 |
---|---|
android AAC LiveData - switchMap, map (0) | 2021.05.28 |
dagger @binds 어노테이션 (1) | 2021.05.23 |
의존성주입(DI) android dagger (0) | 2021.05.22 |
Retrofit2 url이 만들어지는 패턴 (0) | 2020.06.02 |