SwipeRefreshLayout kann nur ein direktes Kind hosten

8

Ich habe einen "pull to refresh" zu meinem listView hinzugefügt, ich wollte auch eine leere Ansicht hinzufügen, wenn die Liste leer ist - Jetzt habe ich diesen Fehler bekommen. Wie kann ich das schaffen? Wenn ich eine Ansicht außerhalb des swipeRefresh positioniere und sie dann als leere Ansicht hinzufüge, wird es funktionieren. Also wie mache ich es so mit einer äußeren XML-Datei ..?

Der XML-Code:

%Vor%

onCreateView:

%Vor%     
Yevgeni 23.05.2014, 13:30
quelle

2 Antworten

14

SwipeRefreshLayout sollte das übergeordnete Element in der XML-Datei sein.

Sie können FrameLayout als Kind von SwipeRefreshLayout verwenden. Die ListView und TextView (oder jede andere leere Statusansicht) können untergeordnete Ansichten von FrameLayout sein.

    
LordRaydenMK 23.05.2014, 14:01
quelle
0

Ich musste dieselbe "pull to refresh" -Funktion in meinen Apps implementieren. Eine alternative (und recht einfache) Möglichkeit zur Implementierung der "leeren Ansicht" besteht darin, die Listen- oder Fußzeilenansichten zu verwenden.

Zuerst erstellen Sie eine "empty_view.xml" mit dem leeren Ansichtslayout. Führen Sie dann in der onCreate () - Methode Ihrer Hosting-Aktivität Folgendes aus:

%Vor%

Im obigen Code ist myListView das ListView-Objekt und Adapter ist der Adapter.

Dies ist auch in anderen Situationen nützlich. Angenommen, die Listendaten werden von einem Webdienst gelesen und werden nur langsam geladen. Dann kann eine ProgressBar als Ansicht platziert und als ListView-Headeransicht festgelegt werden, sodass der Benutzer eine visuelle Anzeige erhält.

    
macelee 26.02.2016 14:20
quelle

Tags und Links