SwipeRefreshLayout stört den setOnScrollListener

8

Jedes Mal, wenn ich die Liste nach oben oder unten scrolle, blende ich einige Ansichten mit OnScrollListener aus (oder blende sie ein). Hier ist der Code an meine ListView angehängt.

%Vor%

Layout:

%Vor%

Seit ich den SwipeRefreshLayout hinzugefügt habe, bekomme ich nichts, wenn ich Log im obigen Listener habe. Wie kann ich diese beiden Elemente zusammen verwenden?

BEARBEITEN : Es scheint wie was ist Ich brauche, aber ich kann es immer noch nicht funktionieren lassen.

Als Teil dieses Artikels habe ich das in onScroll hinzugefügt, aber es scheint nicht zu funktionieren.

%Vor%

EDIT2 : Dies ist das Herz des Problems: Es scheint, dass die Methode onScroll ausgelöst wird, wenn die Aktivität zuerst gestartet wird und die Liste geladen wird und dann nie mehr.

    
KickingLettuce 13.12.2014, 22:32
quelle

3 Antworten

4

Ich hatte das gleiche Problem mit RecyclerView und ListView . Wenn man nach unten blättert, ist es unmöglich, an die Spitze der Liste zurückzukehren.

Dadurch wird SwipeRefreshLayout deaktiviert, bis das erste sichtbare Element oder eine beliebige Position sichtbar ist. Sie können auch verschiedene Scroll-Listener an diesen binden. Stellen Sie sicher, dass Sie SwipeRefreshLayout aktivieren (wenn zuvor deaktiviert), wenn Sie die Liste erneut auffüllen.

%Vor%

Bearbeiten:

%Vor%     
Nikola Despotoski 15.12.2014 23:00
quelle
3

Sie sollten canChildScrollUp von% co_de überschreiben %. Diese Methode wird abgefragt, um zu wissen, ob die enthaltene Ansicht nach oben scrollen möchte:

Eine Erweiterung mit einer einstellbaren Schnittstelle für jede beliebige enthaltene Ansicht:

%Vor%

Verwendung ( SwipeRefreshView hat auch eine nette Methode: ListView ):

%Vor%     
S.D. 22.12.2014 19:15
quelle
2
%Vor%

Standardmäßig: private boolean flag_loading = false; und in Ihrer Paginierung async if (YourListview.size () & lt; 20) {flag_loading = true; } else {flag_loading = false; }

    
krunal patel 22.12.2014 11:42
quelle