android позиция recyclerview при прокрутке изменяется

есть проблема с recyclerview
есть recyclerview в котором есть названия тестов и есть массив выполненных тестов рядом с recyclerview отображается оценка за тест поиск оценки идет в адаптере в методе onBindViewHolder

    override fun onBindViewHolder(furnitureView: FurnitureView, position: Int) {   if (idComplite != null) {
        for (j in idComplite!!.indices) {
            if (position == idComplite!![j] ) {
                furnitureView.scores.visibility = View.VISIBLE
                furnitureView.scores.text = "score:" + scoresRes[j] + "%"
                //  furnitureView.imgScore.setVisibility(View.VISIBLE);
            }
        }
    }

есть проблема когда список большой и прокручиваем вниз scores в списке начинает показываться не в тех местах . заранее спасибо


Ответы (1 шт):

Автор решения: ЮрийСПб

Судя по всему у вас стандартная ошибка - в RecyclerView вьюхи переиспользуются, засим надо не забывать совершать обратные операции при изменении оных. Т.е., если вы по к-л условию делаете что-то видимым - то надо при несовпадении условия делать это невидимым.

В вашем случае - добавьте else и там скройте вьюху:

if (position == idComplite!![j] ) {
    furnitureView.scores.visibility = View.VISIBLE
} else {
    furnitureView.scores.visibility = View.GONE
}
→ Ссылка