Ich habe ein RecyclerView
wie das folgende Bild zeigt:RecyclerView Elemente ändern Größe nach Refresh
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:
Und wenn ich nach unten scrollen, erhalte ich diese Lücke:
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)
Aktien Code des Adapters – Alexander
posten Sie Ihre Adapter und xml-Code für Adapter ... –
Der Code des Adapters ist ein bisschen lang, es ein paar allgemeine Klassen erweitert. Aber der Bindungsprozess ist sehr normal. –