Ich muss eine vertikale Recycler-Ansicht erstellen, in der die Objektansicht in der Mitte des Bildschirms so geändert werden sollte, dass beim Scrollen ein ähnlicher Zoom-Effekt angezeigt wird.
Dinge, die ich versucht habe, aber nicht funktioniert:
Hinzufügen eines Scroll-Listeners und Schleifen von Elementansichten nach Position, Messen der zentrierten Position und Aktualisieren von LayoutParams
von zentriert view
.
RecyclerView
lässt die Position von Elementen oder die Ansicht beim Scrollen nicht aktualisieren. Erzeugt IllegalStateException
, wenn solche Operationen in onScrolled
ausgeführt werden
Ändern von LayoutParams
der zentrierten Objektansicht in onScrollStateChanged
während des Bildlaufstatus ist IDLE
oder SETTLING
.
Die letzte verbleibende Option besteht in der Implementierung der eigenen benutzerdefinierten LayoutManager
, die den Standard LayoutManager
erweitern würde.
Layoutmanager
" viel komplexere Berechnungen, die behandelt werden müssen. Alle anderen Lösungen oder Ideen werden geschätzt.
Ich fand diese Antwort auf SO , die genau dasselbe horizontal machte. Answer bietet eine funktionierende Lösung, die LinearLayoutManager
erweitert. Ich habe es ein wenig modifiziert, um auch vertikale Listen anzupassen, und es funktioniert. Wenn es einen Fehler bei der Implementierung gibt, lassen Sie es mich in Kommentaren wissen. Prost!
Benutzerdefinierter Layout-Manager:
%Vor%mit vertikaler Ausrichtung:
Tags und Links java android android-layout performance android-recyclerview