Develop/Kotlin

[kotlin] 코틀린 Android RecyclerView Item 오류(Position 오류)

JunJangE 2022. 5. 1. 20:59

RecyclerView를 구현할 때 Item이 카운트 되지 않아 똑같은 데이터를 부르거나 item을 재사용 하지 않는 오류가 종종 발생한다.

예를 들어 item의 갯수는 10개지만 처음에 화면에 보이는 item이 4개라서 4개의 뷰만 계속해서 화면에 뿌리는 것이다. 

이러한 현상이 발생하는 이유는 RecyclerView의 재사용이다. 

RecyclerView는 리소스를 아끼기 위해 뷰를 재사용한다.

그래서 재사용을 막기 방법을 쓰기도 하는데 그러면 RecyclerView의 목적이 손실되므로 권장하는 방식이 아니다.

해결 방법은 다음과 같다.

RecyclerView Adapter에 다음 메소드를 오버라이드 하는 것이다.

    override fun getItemViewType(position: Int): Int {
        return position
    }

Java의 경우는 다음과 같다.

@Override
public int getItemViewType(int position) {
    return position;
}