Endless RecyclerView mit ProgressBar zur Paginierung

Ich benutze einRecyclerView und Abrufen von Objekten von einer API in Zehnerstapeln. Zur Paginierung verwende ichEndlessRecyclerOnScrollListener.

Es funktioniert alles einwandfrei. Jetzt muss nur noch ein Fortschritts-Drehfeld am Ende der Liste hinzugefügt werden, während der nächste Stapel von Objekten von der API abgerufen wird. Hier ist ein Screenshot der Google Play Store-App mit einemProgressBar in was ist sicher einRecyclerView:

Das Problem ist, weder dasRecyclerView noch dasEndlessRecyclerOnScrollListener haben eingebaute Unterstützung für die Anzeige einesProgressBar am unteren Rand, während der nächste Stapel von Objekten abgerufen wird.

Ich habe bereits die folgenden Antworten gesehen:

1. Put ein unbestimmtesProgressBar als Fußzeile in einemRecyclerView Gitte.

2. Hinzufügen von Elementen zu Endless ScrollRecyclerView mitProgressBar am Bode.

Ich bin mit diesen Antworten nicht zufrieden (beide von derselben Person). Dies beinhaltet ein @ shoehorninull -Objekt in den Datensatz ein, während der Benutzer einen Bildlauf durchführt und es dann herausnimmt, nachdem der nächste Stapel geliefert wurde. Es sieht aus wie ein Hack, der das Hauptproblem umgeht, das möglicherweise nicht richtig funktioniert. Und es verursacht ein bisschen Ruckeln und Verzerrungen in der Liste

UsingSwipeRefreshLayout ist hier keine Lösung.SwipeRefreshLayout beinhaltet das Ziehen von oben, um das @ abzurufneuest Elemente, und es wird ohnehin keine Fortschrittsanzeige angezeigt.

Kann jemand bitte eine gute Lösung dafür anbieten? Ich bin daran interessiert, wie Google dies für seine eigenen Apps implementiert hat (die Google Mail-App hat es auch). Gibt es Artikel, in denen dies detailliert dargestellt ist? Alle Antworten und Kommentare werden geschätzt. Vielen Dank

Einige andere Referenzen:

1. Pagination mitRecyclerView. (Hervorragende Übersicht ...)

2. RecyclerView Kopf-und Fußzeil. (Mehr vom Gleichen ...

3 EndlessRecyclerView mitProgressBar am Bode.

Antworten auf die Frage(14)

Ihre Antwort auf die Frage