Platform/Android

[RecyclerView] setHasStableIds(boolean hasStableIds)

개랭갱깽스타 2022. 11. 2. 03:42

ISSUE

//FIXME. [BUG] 아이템 4개만 반복해서 나옴 > 원인: 해당 콜백이 4번만 불린다. 
// 그 다음 스크롤 시 나오는 아이템들은 해당 콜백이 호출되지 않고, 기존에 있던 정보를 재활용한다.

// 생각한 해결방안
// -> 스크롤 할 때 마다, 해당 함수가 호출되게 한다. && 문제요구사항인 스크롤할 때마다 20개의 데이터를 호출하는 것도 추가해야 됨 !
// 실제 해결방안
// -> setHasStableIds(true) 설정을 주석처리 해주니 해결!!

// -> 왜일까???

 

/**
 * Indicates whether each item in the data set can be represented with a unique identifier
 * of type {@link java.lang.Long}.
 *
 * @param hasStableIds Whether items in data set have unique identifiers or not.
 * @see #hasStableIds()
 * @see #getItemId(int)
 */
public void setHasStableIds(boolean hasStableIds) {
    if (hasObservers()) {
        throw new IllegalStateException("Cannot change whether this adapter has "
                + "stable IDs while the adapter has registered observers.");
    }
    mHasStableIds = hasStableIds;
}
반응형

'Platform > Android' 카테고리의 다른 글

[gradle] Gradle Wrapper 란?  (0) 2022.11.01
[Paging]  (0) 2022.10.24
[RecyclerView] onBindViewHolder 호출 시점  (0) 2022.10.17
[Module] 모듈 추가 방법  (0) 2022.10.05
[Mac] Android Studio 환경설정  (0) 2022.10.05