Ich habe dieses Problem - nur für Testzwecke habe ich ParseFile
zu einem der ParseObject
aus der Liste empfangen. Anstatt es nur in dieser Reihe zu zeigen, zeigt es alle 4-5 Reihen, manchmal mehr, manchmal weniger. Ich bin davon überzeugt, dass die Recycling-Ansicht etwas damit zu tun hat. Seltsamerweise funktionieren andere Daten (die in diesem Beispiel gelöscht wurden) problemlos mit position
Variable.Recyclerview Adapter und Glide - das gleiche Bild alle 4-5 Zeilen
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if(parseList.get(position).get("logo") != null){
ParseFile image = (ParseFile) parseList.get(position).get("logo");
String url = image.getUrl();
Glide.with(context)
.load(url)
.placeholder(R.drawable.piwo_48)
.transform(new CircleTransform(context))
.into(holder.imageView);
}
}
Könnten Sie mehr darüber ausarbeiten? Vorherige Antworten funktionieren gut, aber ich stelle mir vor, 'clear() 'Methode wurde nicht nur aus der dünnen Luft implementiert. –
Sie arbeiten meistens nur. Wenn Sie onBindViewHolder aufrufen und eine Ladeoperation für eine Position mit einem Logo für eine bestimmte Ansicht starten, rufen Sie onBindViewHolder erneut mit demselben ViewHolder auf, bevor die Ladeoperation abgeschlossen ist. Sie sehen das alte Image anstelle einer leeren Ansicht. Diese Race-Bedingung ist viel seltener als Ihr vorheriger Fehler, aber immer noch möglich. –
Auch ich sollte klarstellen, schrieb ich die Bibliothek und die Clear() -Methode. Dieser Anwendungsfall ist ein gutes Beispiel dafür, warum die Methode clear() existiert :). Sie müssen entweder immer eine neue Ladung starten (die die alte Ladung für Sie löscht) oder die Ladung selbst abbrechen, wenn Sie Ansichten wiederverwenden. –