2015-06-21 82 views
0

我有一個RecyclerView,它顯示了通過RecyclerView適配器從互聯網上下載的圖像和文本列表。當我上下滾動RecyclerView時,問題就出現了。當我最初向下滾動列表時,一切都很順利,所有CardViews(包含圖像和一些文本的CardView)都處於各自的位置。RecyclerView混合項目

但是,當我開始向上滾動時,所有先前的CardView被最低的CardView所取代。回收站視圖的最低項目被重新使用,以替換RecyclerView中的所有以前的項目。

這是一個RecyclerView的錯誤?如果沒有,可以通過清除RecyclerView的緩存或通過強制RecyclerView回收正確的項目來解決這個問題嗎?

+0

您的適配器或加載圖像的方式可能有些問題。你能分享你的代碼嗎? – yigit

+0

@yigit你是對的。我的適配器實施中出現問題。 –

回答

1

這實際上是我的適配器實現中的一個問題。我在覆蓋onBindViewHolder方法中有一個Cursor,並且每次它調用cursor.moveToNext()時,遊標都會向前移動,除非它是數據庫中的最後一行。此時它會停在最後一行。所以當我滾動屏幕時,recyclerview工作得很完美,除了現在它向我展示了光標給出的最後一行的相同數據。我認爲這可能最初是一個回收查看錯誤,但事實證明,這是我的代碼中的一個錯誤。爲了解決它,我只是將cursor.moveToNext()更改爲cursor.moveToPosition(position),並開始按預期顯示結果。