Wie herausfinden, ob Scrollview Ende erreicht hat

  • 6 Antworten
  • Neuester Beitrag
Diskutiere Wie herausfinden, ob Scrollview Ende erreicht hat im Android App Entwicklung im Bereich Betriebssysteme & Apps.
S

Son Goku

Ambitioniertes Mitglied
Hallo

Ich habe eine Scrollview, die ein RealtiveLayout beinhaltet. Dieses beinhaltet standardmäßig x weitere RelativeLayouts.
Wenn ich am Ende der Scrollview angelangt möchte ich x weitere RelativeLayouts einblenden, die automatusch, wenn das Ende der ScrollView erreicht wird, aus dem Web nachgeladen werden sollen.

Bisher hatte ich bei anderen Activitys, die eine Scrollview beinhaltet haben, immer die (fester) Höhe der einzelnen Elemente gekannt und konnte somit ausrechnen, wann verschiedene Elemente in den sichtbaren Bereich gelangen bzw. das Scrollview ganz am Ende angelangt ist. Nun habe ich diese feste Höhe aber nicht mehr, da der Inhalt mal mehr bzw. mal weniger sein kann.

Wie kann ich herausfinden, wenn die Scrollview ganz nach unten gescrollt wurde?
Bzw. kann ich bestimmen wie hoch der Inhalt des Scrollviews ist, damit ich zumindest nach "alter" (aktueller) Logik bestimmen kann, wann ich den Ende erreicht hab?
Oder kann man sogar abfragen, wenn ein bestimmten Element am Bildschirm zu sehen ist, ohne das berechnen zu müssen?

Die Methode "getEdgeFlags()" der Klasse "MotionEvent" gibt hier leider immer 0 zurück.

Viele Grüße
Son Goku
 
S

Son Goku

Ambitioniertes Mitglied
Danke, aber ich glaube das habe ich schon gesehen.
Ich bin an dem Punkt gescheitert, an dem ich festgestellt hab, dass ein Scroll View keinen "OnScrollListener" besitzt.
Und meines Wissens nach, kann ich kein RelativeLayout in eine Listview packen.
Oder liege ich da irgendwo falsch mit meinen Gedanken?
 
T

the_alien

Experte
Du kannst doch das ListItem als RelativeLayout machen.
 
S

Son Goku

Ambitioniertes Mitglied
Danke für den Tipp, hab mein Problem nun lösen können!
 
T

the_alien

Experte
Andere die auf diesen Thread stoßen freuen sich bestimmt wenn am Ende eine Lösung steht ;)
 
S

Son Goku

Ambitioniertes Mitglied
Oje....

Was mich zuerst irritert hat war, dass ich gedacht habe, in einem ListView könnte ich nur Stringarrays darstellen. Deshalb mein erster Versuch mit der Scrollview.

Ich also hab zuerst aus meinem ScrollView zuerst ein ListView gemacht.
Dann kann ich mit Hilfer des "OnScrollListener" genau feststellen, wo ich mich in meiner Liste befinde, um danach weitere Elemente Nachladen zu können, ohne Pixel berechnen zu müssen. (Klick mich)

Danach hab ich dieses Beispiel gefunden und mir danach mit dessen Hilfe meinen eigenen ListAdapter geschrieben.

Nachgeladene Items hänge ich dann mit folgender Zeile an meine Liste an:
Code:
listAdapter.add(itemList.get(i));
Das dürfte eigentlich für jeden reichen, sich selbst seine individuell passende Lösung zu schreiben.


Achja: Das hat auch mein Problem mit den Hängen der App beim Nachladen von Bilden/Daten hab ich dadurch übrigens auch lösen können. Ist seitdem nicht mehr aufgetreten. Oder es lag an dem Update der Android SDK, das ich mittlerweile installier hab. Das kann ich jetzt nicht mehr beurteilen. ;)