Ich suche einen halben Tag nach einer Antwort, aber ich kann nichts finden, obwohl ich dachte, dass es ein häufiges Problem ist. Mein Problem:
Ich habe eine ListView
, die Elemente in verschiedenen Größen (Höhen) hat. Jeder Gegenstand enthält ein ImageView
. Das Image für dieses ImageView
wird im Hintergrund von einer ImageLoader-Klasse geladen:
Wenn ich den ListView
runterscrolle, funktioniert alles gut. Die Bilder werden geladen und angezeigt (natürlich am unteren Rand des Bildschirms / der Liste).
Aber wenn ich nach oben scrolle und das Bild nicht mehr im Cache gespeichert ist, muss der ImageLoader das Bild neu laden, die ListView
springt / die Objekte werden verschoben. Ich denke es liegt daran, dass ein neues View
über der Liste mit einem ImageView
mit 0dp height erstellt wird. Wenn das Bild geladen und auf ImageView
eingestellt ist, ändert sich die Höhe von ImageView
automatisch von 0dp auf die Größe des Bildes. Dies würde die ListView
nach unten drücken, denke ich.
Ich habe versucht, die Höhe von ImageViews
zu speichern, wenn ein Bild gesetzt ist, und dann die Höhe von ImageView
, die oben erstellt wurde, auf die gespeicherte Höhe zu setzen. Aber ohne Erfolg ..
Ich weiß nicht, ob Sie mein Problem verstehen können: D Ich hoffe es:)
Danke und einen schönen Tag!
BEARBEITEN: Hinzugefügt ImageLoader
Klasse
BEARBEITEN: Adapter hinzugefügt:
%Vor% Und hier ist die Fragment
, welche die ListView
Hier sind viele Informationen und Code. Ich hoffe das erschreckt niemanden zu helfen: D
Danke !!
Ich habe das Problem wahrscheinlich gelöst .. Endlich .. Meine Idee, die Höhe von ImageView
in getView zu setzen, war nicht so schlimm .. Problem war:
Mein ImageView
wurde in ein CardView
in XML eingebunden. Also musste ich die Höhe von CardView
anstelle von ImageView
ändern:)
Tags und Links android scroll listview image-loading