/ / Error de Picasso en la primera carga - Android, picasso

Error de Picasso en la primera carga - Android, picasso

Tengo un ListView con una imagen cargada por Picasso usando en mi adaptador getView():

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

Solo la primera celda obtiene una imagen las otras 2.muestra la imagen por defecto. Cuando me desplazo todas las demás celdas tienen una imagen. Cuando vuelvo a la parte superior, las 2 celdas que estaban en blanco ahora muestran una imagen. ¿Alguien ha visto esto alguna vez? ¿Alguien tiene una idea de cómo puedo depurar?

enter image description here

Respuestas

1 para la respuesta № 1

Algunas imágenes no se cargan porque la URL está vacía o no contiene "http".

La razón por la que ve que las celdas vacías se vuelven no vacías es que las vistas se reciclan. Por lo tanto, debe llamar a Picasso o configurar la imagen predeterminada para su ImageView manualmente en getView(), pero nunca puedes dejar el ImageView sin tocar

Debido a que solo llama a Picasso de forma condicional sin borrar siempre la imagen, cuando la URL está vacía o no contiene "http", su ImageView Aún contendrá la imagen anterior de la celda reciclada.

Así que cambia tu código de esta manera:

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);
}