일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ansi2html
- exoplayer cache
- ListAdapter
- video caching
- android exoplayer
- ktor api call
- doc2vec
- ChatGPT
- 안드로이드
- FastAPI
- llm
- kotlin list
- DiffUtil.ItemCallback
- map
- 스피너
- ktor client
- getChangePayload
- list map
- AWS EC2
- kotlin collection
- android
- android custom view
- android ktor
- ListAdapter DiffUtil
- 시행착오
- 독서
- ExoPlayer
- 유튜브
- build with ai
- Python
- Today
- Total
목록getChangePayload (2)
버튼 수집상
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/m5ctr/btsA7qpJGEL/WCbQk9MTvl1ZPr1SS3Qb4K/img.gif)
지난 글 링크 [안드로이드] ListAdapter DiffUtil 제대로 쓰기 - 3 지난 글에서 ListAdapter DiffUtil 의 getChangePayload 활용법에 대해 적었다. [안드로이드] ListAdapter DiffUtil 제대로 쓰기 - 2 1편에서 ListAdapter에 submitList를 하면서 기존 리스트를 업데이트할 때 리스트 깊은 collectingbuttons.tistory.com 지난 글에 이어서 DiffUtil.ItemCallback의 getChangePayload 함수를 이용해서 expand - collapse 되는 리스트 UI를 만들어보겠다. UI 구조 상위 카테고리 ▲ |_ 하위 카테고리 |_ 하위 카테고리 상위 카테고리 ▼ 상위 카테고리 ▼ 상위 카테고리 ▼..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bulUs5/btsnui4YupO/UgO6S25nSYKOTCxZ51Qyg1/img.gif)
1편에서 ListAdapter에 submitList를 하면서 기존 리스트를 업데이트할 때 리스트 깊은 복사deep copy를 해야 하는 이유에 대해 적었다. 이번엔 ListAdapter DiffUtil의 각 함수를 자세히 알아보겠다. 샘플 코드 전체는 1편에 있다. DiffUtil.ItemCallback 에 구현해야하는 함수 2가지가 있다. areContentsTheSame : 리스트 요소의 객체 주소를 비교한다 areItemsTheSame : 리스트 요소의 필드값을 비교한다 함수 이름만 보면 하는 일이 반대가 돼야할 것 같은데 아무튼 그렇다. areItemsTheSame에서 변경사항을 감지하고 싶은 값을 비교해서 UI를 업데이트할 수 있다. 예제 데이터 SimpleObject의 isChecked 값을 ..