2016-04-20 7 views
-1

Ich habe eine ListView, die von Service-Antwort ausgefüllt wird. Wenn der Dienst aufgerufen wird, zeige ich eine Fortschrittsanzeige an, indem ich die Fußzeilenansicht durch Aufblähen der Fortschrittsanzeige hinzufüge und sie verstecke, sobald die Listenansicht aufgefüllt ist.Android ListView addFooterView() Problem

Hinweis: Ich füge Fußzeile vor der Einstellung Adapter. Dann füge ich Footerview bei jedem Serviceanruf hinzu.

Problem: wenn der Dienst nicht leer Antwort alles wieder funktioniert prima (footerview gezeigt und ausgeblendete nach Listenansicht bevölkert ist) wenn Dienstantwort leer dh Listenansicht in der nächsten Methode ist leer ruft addFooterView() funktioniert nicht (Fußzeile nicht angezeigt).

Es folgt Beispielcode

addFooterView(loadingView, null, false); 
m_List.addAll(listItems); 
m_adapter.notifyDataSetChanged(); 
removeFooterView(loadingView); 

Hinweis: Wenn jedes Mal Listengröße größer als Null ist i nicht Problem konfrontiert bin.

+0

wenn 'listItems' leer ist .. wird Fußzeile in Sekundenbruchteilen hinzufügen und entfernen, wo Sie nicht wissen werden, dass das wirklich angezeigt und verschwunden ist ... – Bharatesh

+0

@skadoosh aber auf neuen Service-Aufruf, wenn listItems nicht leer ist Dann zeigt es auch nicht loadingview – Ali786

+0

warum nicht Fußzeile anzeigen, bevor Sie Webservice/Netzwerk aufrufen und entfernen, dann erhalten Sie Antwort .. das wird genug Zeit, um es dem Benutzer zu zeigen ... at mindestens für 1 Sekunde sein in jeder Situation sichtbar. – Bharatesh

Antwort

0

Fügen Sie die Fußzeilenansicht hinzu, wenn Ihre Arraylist über Daten verfügt, die an Ihren Adapter gebunden sind, und überprüfen Sie auch listView.getFooterViewCount, bevor Sie hinzufügen, wenn es bereits vorhanden ist.