Ich habe ein Fragment
mit einem SwipeRefreshLayout
und dann RecyclerView
als Kind.
Wenn das Fragment festgeschrieben ist, beginnt es mit einem Server zu sprechen, um einige Daten abzurufen und einen CustomAdapter zu füllen, der das RecyclerView bedienen wird.
Der Benutzer kann den Inhalt aktualisieren, indem er nach unten wischt oder eine Taste auf der ActionBar drückt. Im letzteren Fall rufe ich manuell swipeRefreshLayout.setRefreshing(true)
auf. Also keine Probleme bis jetzt.
Das Problem tritt auf, wenn ich den Aktualisierungsstatus beim ersten Laden der RecyclerView manuell aufrufen ( onStart()
).
Die Fortschrittsanzeige wird nicht angezeigt und ich nehme an, weil die RecyclerView noch leer ist, da es einige Sekunden dauert, alle Daten abzurufen ...
Ich hinterlasse Ihnen einen Code.
Fragmentcode:
%Vor%XML-Code:
%Vor%Was wäre die beste Vorgehensweise, um dieser Situation zu begegnen? Hinzufügen eines zweiten Dummys SwipeRefreshLayout? Sofort einen leeren Adapter erzwingen?
Sie müssen vor dem Aufruf setRefreshing(true)
die Methode measure aufrufen.
Werfen Sie einen Blick auf: SwipeRefreshLayout keine Animation zur Fragment-Erstellung . Vielleicht kann es hilfreich sein.
Tags und Links android appcompat android-recyclerview swiperefreshlayout