Ich verwende StaggeredGridLayoutManager für meine Bildergalerie. Ich habe setReverseLayout(true)
eingestellt, damit Bilder von unten gestapelt werden.
Das Problem, mit dem ich konfrontiert bin, ist, dass bei der Initialisierung der App die Scroll-Punkte unten in der Galerie angezeigt werden. Ich möchte, dass die Bildlaufleiste oben in der Galerie angezeigt wird, wenn der Benutzer die App zum ersten Mal startet.
Ich habe versucht, scrollToPosition
(das folgende Code-Snippet) zu verwenden, aber die Scroll endet irgendwo in der Mitte der Galerie, wahrscheinlich weil die Bilder zum Zeitpunkt des Aufrufs von scrollToPosition
nicht richtig geladen wurden.
Gibt es eine richtige Methode, die Schriftrolle oben anstatt unten zu zeigen?
Versuchen Sie, die erste sichtbare Position zu finden, indem Sie anrufen findFirstCompletelyVisibleItemPositions
oder findFirstVisibleItemPositions
Rufen Sie Ihre Recycler-Ansicht scrollToPosition mit der Position auf, die Sie mit der / den vorherigen Methode (n) erhalten haben
Ich habe scrolltoposition im dataobserver verwendet und jetzt funktioniert es gut ..
Wenn die Recycleransicht geladen wird, sind die Elemente oben mit dem folgenden Code sichtbar:
%Vor%, um nach neu hinzugefügten Elementen wie in der Chat-Ansicht zu blättern, verwenden Sie den folgenden Code.
%Vor% Verwenden Sie stattdessen scrollToPositionWithOffset()
function von StaggeredGridLayoutManager
. Ich fand es zuverlässiger als scrollToPosition
. Stellen Sie außerdem sicher, dass Sie diese Funktion in Handler().post()
ausführen. Dies führt dazu, dass Runnable
zur Nachrichtenwarteschlange hinzugefügt wird. Es wird ausgeführt, sobald der UI-Thread frei ist.
Dieser Code kann Ihnen helfen, ich habe diesen Link auch im Code verwendet
%Vor%Jedes AdapterView (z. B. ListView und GridView) unterstützt Bindung an die OnScrollListener-Ereignisse, die immer dann ausgelöst werden, wenn a Der Benutzer scrollt durch die Sammlung. Mit diesem System können wir definieren ein einfacher EndlessScrollListener, der die meisten Anwendungsfälle unterstützt Erstellen einer eigenen Klasse, die OnScrollListener erweitert:
Tags und Links android gridlayoutmanager