2017-10-22 79 views
0

我在網格視圖中顯示回收站視圖。回收站視圖適配器具有cardview作爲模型視圖,其中我有一個imageview。在我的適配器的onBindViewHolder內部,我使用Firebase存儲參考從滑翔加載圖像。RecyclerView:無法在滾動時保持一致的項目視圖

@Override 
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { 
     Glide.with(context).using(new FirebaseImageLoader()).load(storagereference.get(position)).centercrop().into(viewholder.imageview); 
} 

其中storagereference是Firebase的StorageReference類的ArrayList。問題是當回收視圖中的視圖數量超過11個時,即12張卡片(我以跨度2的網格視圖顯示它們),並且當我滾動最後兩個項目時加載其參考存儲在storagereference.get(0)中的圖像以及分別爲storagereference.get(1)。當我滾動備份第一個圖像中的兩個項目變成其他的東西時,他們要麼變成相同的,要麼從storagereference.get(11)storagereference.get(10)。我不知道它爲什麼會發生(但我猜它是因爲項目的回收),儘管我在我的onBindViewHolder()方法中有.load(storagereference(position)),所以它必須返回所需位置的存儲引用(0爲第一項等),但不知何故它改變。

請任何人解釋原因和補救辦法。 感謝

+0

而不是此之前storagereference。 get(position)使用storagereference.get(getAdapterPosition())並在加載之前檢查是否有任何值 –

+0

一小段代碼會幫助很多!謝謝! @ankit aman –

+0

很酷,將此答案標記爲已接受upvoting –

回答

0

,而不是這個storagereference.get(位置)使用storagereference.get(getAdapterPosition()),並檢查是否有任何價值或沒有加載

相關問題