728x90
블로그에 지난 졸업프로젝트에서 했던 주요 기능부분을 기록으로 남기려고한다.
조금? 오랜 시간이 지났지만 기억을 되살려서 기록을 해보자
저번에 RecyclerView에 대해서 포스팅을 하였을 때
https://superohinsung.tistory.com/314
아래와 같은 코드를 본 적이 있을 것이다.
companion object {
private val diffCallback = object : DiffUtil.ItemCallback<CommentItemUiState>() {
override fun areItemsTheSame(
oldItem: CommentItemUiState,
newItem: CommentItemUiState
): Boolean {
return oldItem.commentId == newItem.commentId
}
override fun areContentsTheSame(
oldItem: CommentItemUiState,
newItem: CommentItemUiState
): Boolean {
return oldItem == newItem
}
}
}
이것은 DiffCallback에 대해서 Companion Object로 선언한 것이며, 이것은 DiffUtil.ItemCallback을 상속하여 두 항목 간의 차이를 결정하는 로직을 제공한다. 그리고 UserAdapter는 ListAdapter를 확장하면서 선언된 diffCallback을 사용하여 데이터 변경을 처리한다.
이렇게 함으로써, submitList 메서드를 호출하면 ListAdapter가 내부적으로 DiffCallback을 사용하여 이전 목록과 새로운 목록 간의 변경을 계산하고 UI를 효율적으로 업데이트할 수 있다.
728x90
'Android > Study' 카테고리의 다른 글
[Android] Room이란 (0) | 2024.03.11 |
---|---|
[Android] abstract class를 이용하여 ViewBinding을 쉽게 사용하기 (0) | 2024.02.29 |
[Android] ComposeUi 도입기 (0) | 2024.02.28 |
[Android] 포스팅 업로드 구현 (4) - Repository (0) | 2024.02.28 |
[Android] 포스팅 업로드 구현 (3) - 화면 XML (0) | 2024.02.26 |