Ich habe in Recycler View mit einem seltsamen Verhalten zu tun gehabt, wenn die Anzahl der Ansichten im Adapter klein ist, in meinem Fall mit Größe 5 werden die Ansichten nicht wiederverwendet und onBindViewHolder wird nicht aufgerufen, wenn die Ansicht zurückgescrollt wird zu screenen. Wenn ich zum Beispiel die Größe auf 10 Ansichten vergrößere, beginnt das Recycling und onBindViewHolder wird jedes Mal aufgerufen, wenn eine Ansicht auf den Bildschirm kommt.
XML
%Vor%Initialisierung der Recycler-Ansicht
%Vor%Der Adapter
%Vor% Auf dem Bildschirm gibt es nur 3 sichtbare Ansichten, mit einer Größe von 5, wenn ich nach unten scrolle, kann ich sehen, dass die createViewHolder
und bindViewHolder
für Position 4 und 5 aufgerufen wird, aber wenn ich nach oben blättern werden beim Verlassen des Bildschirms nicht wiederverwendet. Ich kann das bestätigen, weil durch
Es wird keine Nachricht protokolliert. Wenn die Anzahl der Aufrufe jedoch beispielsweise mit der Größe 10 erhöht wird, funktioniert alles einwandfrei, die Ansichten werden wiederverwendet und für jede Position wird onBindViewHolder
aufgerufen.
Ist das normales Verhalten? Wenn ich den Status einer Objektansicht speichern kann, zum Beispiel den aktivierten Zustand, habe ich die aktive Position in einer Variablen gespeichert und dann diese Zeile verwendet, um die Ansicht zu aktivieren, wenn sie mit der Bind-Methode
auf den Bildschirm gelangt %Vor%Tags und Links android android-recyclerview