2016-05-31 5 views
4

Ich habe ein RecyclerView wie das folgende Bild zeigt:RecyclerView Elemente ändern Größe nach Refresh

RecyclerView

Dies ist der Setup-Code für diesen RecyclerView:

RecyclerView.LayoutManager layoutManager = new GridLayoutManager(this, 2); 
dataRecyclerView.setLayoutManager(layoutManager); 
dataRecyclerView.addItemDecoration(new GridSpacingItemDecoration(...); 
dataRecyclerView.setItemAnimator(new DefaultItemAnimator()); 

nach einer neuen Tätigkeit beginnen, wo Ich aktualisiere das ausgewählte Element des RecyclerView, das RecyclerView wird mit neuen Daten neu gefüllt, um die neue Änderung widerzuspiegeln, aber ich bekomme das folgende Ergebnis:

Result 1

Und wenn ich nach unten scrollen, erhalte ich diese Lücke:

Result 2

ich RecyclerView#invalidate() versuchte Aufruf #invalidateItemDecorations(), #requestLayout() nach der Auffrischung, aber ohne Erfolg; & Ich rufe auch nicht setHasFixedSize(true) auf der RecyclerView.

Was ist das Problem genau? Wie kann ich die Größe der untergeordneten Elemente ändern, wenn sie ihren Inhalt genau nach dem Aktualisieren umhüllen?

(PS:. Ich habe versucht, ohne dass Änderungen erfrischende & nichts passiert, was meine Theorie beweist, dass das Problem nur, wenn ein Kind ändert Höhe Stück entsteht)

+0

Aktien Code des Adapters – Alexander

+0

posten Sie Ihre Adapter und xml-Code für Adapter ... –

+0

Der Code des Adapters ist ein bisschen lang, es ein paar allgemeine Klassen erweitert. Aber der Bindungsprozess ist sehr normal. –

Antwort

1

, die ziemlich spät ist, aber ich habe auch erlebt diese Problem. Dies könnte hilfreich für diejenigen sein, die immer noch den gleichen Fehler haben.

In meinem Fall die Lösung wurde überprüft, ob es einen Artikel Dekoration für recyclerview sind:

recyclerView.addItemDecoration(new SpacesItemDecoration(8));

Diese Linie genannt wurde jedes Mal recyclerview aktualisiert und war recyclerview Produkte immer kleiner machen. Hoffe es hilft dem anderen.

Glücklich Coding, Baki

+0

Vielen Dank für Ihre "späte" Empfehlung haha, ich bin nicht in der Lage, diese Lösung im Moment zu versuchen, aber ich werde es mir merken. Vielen Dank ! –

Verwandte Themen