2012-08-14 19 views
1

這不是一個大問題,但它看起來很奇怪。在列表或gridview中,我會加載延遲的圖像(例如,從遠程位置加載)。我正在使用convertView回收這些項目。當我快速向下滾動時,我會看到重複的舊圖像,直到獲取正確的圖像並將其替換。舊物品可見一段時間,在listview或gridview中回收時

有沒有辦法改變它?例如,我嘗試在getView()(在初始化convertView之後,如有必要)的最開始處設置imageView的可見性爲GONE。取出圖像後設爲VISIBLE。但由於某種原因,這不起作用(仍然看起來一樣)。

謝謝!

編輯:我甚至不確定這是使用循環視圖時的正常行爲,還是我做錯了什麼。當互聯網連接速度快,或者從文件系統中獲取時,它看起來不像一個錯誤。然後新圖像加載非常快,用戶看不到重複的項目。但是,在一個緩慢的互聯網連接,它看起來像一個錯誤。

+1

向我們展示適配器的代碼。每次調用getView()時,只需將圖像設置爲null,然後再開始實際加載,就可以修復它。 – 2012-08-14 22:09:37

+0

但是這不是將它設置爲'GONE'嗎?在開始線程之前,我做了一個測試,在getView()開始時將所有內容都設置爲'GONE',並且沒有任何變化(不明白爲什麼,但這正是我在設備上看到的...)。我會發布一些示例代碼。 – Ixx 2012-08-14 22:13:26

+0

Agh ...愚蠢的我; PI將它們設置爲'GONE',但在一些其他操作之後,在開始取回過程之前將它們再次設置爲'VISIBLE' ...再次格式化stackoverflow的代碼回答了我的一個問題... – Ixx 2012-08-14 22:22:18

回答

0

在設置圖像行之前,只檢查圖像是否屬於視圖內容。

我有相同的問題回來,我不得不改變我的圖片下載,以便它需要圖像網址以及元數據,所以一旦下載完成,我可以比較元數據與視圖的數據。

+0

但圖像設置在正確的地方。問題在於android會回收視圖,並且*在設置圖像時顯示舊回收視圖的內容。 – Ixx 2012-08-14 21:57:52

相關問題