首次加载时毕加索错误

时间:2014-05-14 11:13:57

标签: android picasso

我在我的适配器getView()中使用Picasso加载的图像的ListView:

if (item.getPicture().contains("http")) {
     Picasso.with(context).load(item.getPicture()).placeholder(R.drawable.default_picture).into(holder.imageView);
}

只有第一个单元格获取图像,另外2个单元格显示default_picture。当我滚动所有其他单元格有一个图像。当我向后滚动到顶部时,空白的2个单元格现在显示图像。有没有人见过这个?有没有人知道我如何调试?

enter image description here

1 个答案:

答案 0 :(得分:1)

某些图片未加载,因为网址为空或不包含" http"。

您看到空单元格变为非空的原因是视图被回收。因此,您需要调用Picasso或在ImageView中手动设置getView()的默认图片,但您永远不能保持ImageView不受影响。

因为你只是在没有经常清除图像的情况下调用Picasso conditionnaly,所以当URL为空或者不包含" http"时,您的ImageView仍会包含回收单元格的上一张图像

所以改变你的代码:

if ((item.getPicture() != null) && item.getPicture().contains("http")) {
     Picasso.with(context).load(item.getPicture()).placeholder(R.drawable.default_picture).into(holder.imageView);
} else {
     holder.imageview.setImageResource(R.drawable.default_picture);
}