ListView über Ende hinausscrollen

  • Antworten:1
Patrick Winkelmann
  • Forum-Beiträge: 1

20.08.2013, 09:27:45 via Website

Hi,
ich bin ganz neu in der Android-Entwicklung und möchte gerne folgendes realisieren:
Ich lade beim Starten der App eine festgelegte Anzahl an Datensätzen von einem Webservice über REST herunter. Diese stelle ich in einer ListView dar.
Bin ich am Ende der ListView angekommen, möchte ich sofort neue Daten vom Webservice (die nächsten 20 Datensätze z.B.) anfordern und an die ListView anhängen.

Soweit so gut, das klappt jetzt auch wunderbar.

Problem: Der Webservice wird jetzt sehr oft kontaktiert, wenn ich bloß in der ListView hin -und herscrolle. Nämlich genau dann, wenn ich den letzten Datensatz sehe. (was ja auch logisch ist, da das Ende somit erreicht wurde)

Idee: Ich möchte den Webservice also nur kontaktieren, wenn ich die ListView noch weiter nach unten Scrollen will.
Da erscheint unter Android ja dieser farbige Rand am Ende einer ListView.

Die Facebook-App hat z.B. eine ähnliche Funktionalität. Will man ältere Neuigkeiten sehen, scrollt man einfach nach ganz unten und zieht die "ListView" (ich gehe mal davon aus, dass Facebook da ein eigenes Control hat) noch ein bisschen weiter nach oben.

Kann ich dieses "Event" irgendwie in einer normalen ListView abfragen?

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

20.08.2013, 17:39:47 via Website

DU gehst da zu technisch ran meiner Meinung nach. Aus sicht des APP Entwicklers klingt das zwar logisch aber der User würde das nicht verstehen.
Schau dir mal an wie andere APPs das Problem lösen. Zum einen erkennen sie selbst das z.b 3/4 der liste gezeigt werden und laden nach, der User sieht das unten in der Liste entsprechend. Ein Überscrollen ist eher komisch fütr den user. Einige APPS plazieren auch einfach eine Art Button und per Klick wird geladen, obwohl das halbwegs intuitiv ist ist das nicht wirklich ne gute lösung da jeder klick zuviel einfach nur nervt. Daher würde Ich zu obriger lösung greifen.

Was du in FB beschreibst nennt sich "Pull to Refresh" und es gibt entsprechend OS libs die das bereits können.

Erste Treffer: https://github.com/erikwt/PullToRefresh-ListView

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten