【发布时间】:2013-04-17 17:46:26
【问题描述】:
当用户滚动 ListView 时,我的问题已连接。我环顾四周,看到了许多“listview 懒惰图像”的例子,还观看了 Google IO 的视频,其中提到了“良好实践”来完成这项工作。但是当用户在 ListView 上下移动时,我的问题仍然存在。
发生的情况是,当滚动列表时,每个项目上加载的图像被打乱,每个项目的头像到下一个项目结束。我不知道我是否清楚,但我会用图像显示。
当你开始时,没有图像的项目会留下标准图像。
图片1:http://boxandroid.com/app/weguide/itsok.png 用户滚动 ListView 之前:http://boxandroid.com/app/weguide/nook.png
请注意,图片在其他项目中随机排列。
在我的适配器中:
public View getView(int position, View convertView, ViewGroup parent){
ViewHolder viewHolder = new ViewHolder();
if(convertView == null){
convertView = _inflate.inflate(R.layout.layout_list, null);
viewHolder.text = (TextView) convertView.findViewById(R.id.title);
viewHolder.owner = (TextView) convertView.findViewById(R.id.owner);
viewHolder.image = (ImageView) convertView.findViewById(R.id.thumb);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
HashMap<String, String> item = (HashMap<String, String>) getItem(position);
viewHolder.text.setText( item.get("poiName").toString() );
viewHolder.owner.setText( item.get("owner").toString() );
ImageView imageView = viewHolder.image;
imageView.setTag(item.get("thumbs"));
if(!item.get("thumbs").equals("null")){
Drawable cacheImage = loader.loadDrawable(item.get("thumbs"), new ImageManage.ImageCallback() {
public void imageLoaded(Drawable imageDrawable, String imageUrl) {
ImageView imageViewByTag = (ImageView) _listView.findViewWithTag(imageUrl);
if(imageViewByTag != null)
imageViewByTag.setBackgroundDrawable(imageDrawable);
}
});
imageView.setImageDrawable(cacheImage);
notifyDataSetChanged();
}
return convertView;
}
【问题讨论】:
-
如果可能的话,发布一些源代码,也就是你实际上在做什么..
标签: android listview scroll lazy-loading