我有一個顯示兩列圖像的gridview。我加載這些圖像與異步任務(請參閱這篇文章Lazy load of images in ListView)Android - Gridview圖像在滾動上混合
但是,當我滾動gridview,位置圖像混合。例如,第14張圖像顯示第1張圖像,我認爲視圖試圖在異步任務完成之前顯示舊圖像。
我的代碼:
public Content getItem(int position) {
return contents.get(position);
}
public long getItemId(int position) {
return position;
}
@Override
public boolean hasStableIds() { return true; }
public View getView(int position, View convertView, ViewGroup parent) {
Thumbnail contentView;
Content current = contents.get(position);
if (convertView == null) {
contentView = new Thumbnail(mContext);
}
else {
contentView = (Thumbnail) convertView;
}
contentView.title = current.getTitle();
contentView.image = current.getImage();
contentView.link = current.getLink();
contentView.init();
return contentView;
}
初始化函數
TextView titleText = (TextView)super.findViewById(R.id.titleText);
titleText.setText(title);
ImageView imageControl = (ImageView)super.findViewById(R.id.thumbImage);
DrawableManager loadImage = new DrawableManager(); loadImage.fetchDrawableOnThread(imgUrl, imageControl);
等待您的幫助
感謝
添加了這一行。但沒有任何改變。它顯示舊圖像,並在異步任務完成時用新圖像進行更改。有時它也顯示錯誤的圖像。我認爲異步任務指向錯誤的圖像控制。還嘗試將標記設置爲imageview。 – dracula 2013-04-30 11:47:45
是的,也可能因爲視圖重用而發生(例如,由於流過屏幕邊緣而變得不可見的ImageView可以被重複用於具有相同內存指針的可見視圖)。但設置標籤肯定會幫助你(並幫助我多次)。 – 2013-04-30 12:05:10
設置網址標籤和比較標籤與網址字符串爲我工作:)非常感謝你安德烈。這真的很頭疼 – dracula 2013-04-30 12:34:08