2015-06-21 2 views
0

У меня есть RecyclerView, который отображает список изображений и текста, загружаемых из Интернета через адаптер RecyclerView. Проблема возникает при прокрутке вверх и вниз по RecyclerView. Когда я сначала прокручиваю список, все кажется прекрасным, и все CardViews (кардвайс, содержащий изображение и некоторый текст) находятся на своих соответствующих позициях.RecyclerView Mixing Up Items

Однако, когда я начинаю прокручивать назад, все предыдущие CardViews заменяются самым низким CardView. Самый низкий элемент recyclerview используется повторно для замены всех предыдущих элементов в RecyclerView.

Является ли это ошибкой RecyclerView? Если нет, есть ли способ решить эту проблему, возможно, очистив кэш RecyclerView или принудив RecyclerView к переработке правильных элементов?

+0

Возможно, что-то не так в вашем адаптере или способе загрузки изображений. Можете ли вы поделиться своим кодом для этого? – yigit

+0

@yigit вы были правы. В моей реализации адаптера возникла проблема. –

ответ

1

Это была проблема в моей реализации адаптера. У меня был курсор в режиме override onBindViewHolder, и каждый раз, когда он вызывал cursor.moveToNext(), курсор двигался вперед, если только он не был последней строкой в ​​базе данных. В этот момент он остановится в этой последней строке. Поэтому, когда я прокручивал экран, recyclerview работал отлично, но теперь он показал мне те же данные из последней строки, что и указатель. Я думал, что это может быть ошибка recyclerview изначально, но, как оказалось, это была ошибка в моем коде. Чтобы решить эту проблему, я просто изменил cursor.moveToNext() на cursor.moveToPosition(position) и начал показывать результаты, как ожидалось.