Vor der Implementierung der Ansicht "Swipe zum Aktualisieren" funktionierte die Recycler-Ansicht reibungslos, aber nicht jedes Mal, wenn ich versuche, die Recycler-Ansicht nach unten zu scrollen, wischt der Swipe zur Aktualisierung und behindert die Scroll-Bewegung.
Hier ist der Screenshot des Problems:
(Beachten Sie, dass das Swipe-Layout aktualisiert wird, während die Recycler-Ansicht nach unten gescrollt wird)
Hier ist mein Layout-Fragment:
%Vor%Darunter steht der Code für mein Fragment:
%Vor%Ich habe auch das Layout des Koordinators im Aktivitätslayout implementiert. Hier ist der Code:
%Vor%Können Sie mir helfen, dieses Problem zu lösen? Es wird eine große Hilfe sein. Vielen Dank im Voraus.
Ich habe es selbst endlich selbst in Ordnung gebracht.
Das Problem liegt im XML-Layout selbst. Die Recycler-Ansicht sollte ein einzelnes untergeordnetes Element in einem SwipeToRefereesh-Layout sein.
Die Layoutdatei sollte wie folgt aussehen:
%Vor%Sie müssen keine anderen Dienstprogrammklassen hinzufügen oder die canChildScrollUp () -Methode von SwipeToRefesh überschreiben.
Dies ist ein bekanntes Problem und ich frage mich, warum das nicht schon behoben wurde. Das Problem hierbei ist, dass SwipeRefreshLayout
immer davon ausgeht, dass die Liste nicht weiter nach oben scrollen kann.
Eine Lösung besteht darin, SwipeRefreshLayout
zu erweitern und canChildScrollUp()
zu überschreiben. Diese Methode wird aufgerufen, wenn Sie mit dem Scrollen beginnen und hier false zurückgeben, wenn die Liste nicht an der obersten Position ist, sollten Sie den Trick machen.
Verwenden Sie als Nächstes diese Hilfsmethode, um zu bestimmen, ob Ihr RecyclerView
weiter nach oben blättern kann:
Ich habe es geschafft, Swipe down zu refresh und infinit scrolling zu implementieren. Wenn jemand interessiert ist, schauen Sie sich das an. Sie können sich die Implementierung davon unter
ansehenObwohl ich aus der Sicht von UX nicht sicher bin, ob die Unterstützung von SwipeDown sowohl zum Aktualisieren als auch zum Aktualisieren am Ende des Bildlaufs unterstützt wird, ist es eine gute Idee, den Endbenutzer zu verwirren.
Prost!
Tags und Links android android-recyclerview recyclerview-layout swiperefreshlayout