Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발자이야기

android recyclerview diffutil 본문

android

android recyclerview diffutil

개발자가되고싶어 2021. 5. 14. 00:41

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

 

boidmy/recyclerviewDiffUtil

Contribute to boidmy/recyclerviewDiffUtil development by creating an account on GitHub.

github.com

 

'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