SwipeRefreshLayout ist in der leeren RecyclerView verborgen

8

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?

    
Emanuele 02.11.2014, 11:48
quelle

2 Antworten

0

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.

    
Maksym 02.11.2014, 18:27
quelle
11

Ich hatte ein Problem damit, dass SwipeRefreshLayout nicht mit einem leeren Recycler arbeitet, also habe ich einen sehr einfachen leeren Adapter erstellt.

%Vor%     
DariusL 14.01.2016 09:01
quelle