2010-09-17 3 views
6

Ich habe eine ScrollView, die zwei versteckte Bilder hat, eines oben und eines unten. Dazwischen gibt es eine Menge sichtbaren Inhalts.Android: Erkennen, wann ScrollView mit dem Scrollen und Zurückspulen fertig ist?

Was ich tun muss, ist diese Bilder standardmäßig ausgeblendet, aber wenn Sie den ganzen Weg nach oben oder ganz nach unten scrollen, können Sie sie beim Scrollen sehen. Aber sobald Sie aufhören zu scrollen, sollte es zurück in den sichtbaren Bereich springen, so dass die versteckten Bilder nicht angezeigt werden.

Im Grunde versuche ich, die Bounce-Scrolling-Funktion des iPhone UIScrollView zu imitieren.

Ich habe meine ScrollView alle Setup und ich mache einen Bildlauf am Anfang, um das obere versteckte Bild zu verstecken. Jetzt muss ich nur noch feststellen, wann ein Scrolling beendet ist, die Y-Position ermitteln und prüfen, ob ein verstecktes Bild angezeigt wird. Wenn dies der Fall ist, würde ich die Ansicht programmatisch durchblättern, sodass das versteckte Bild ausgeblendet wird.

Ich hoffe, dass alles einen Sinn ergab.

Also sowieso, ich weiß, wie man ein ScrollView programmgesteuert scrollt. Was ich jetzt brauche, ist eine Art Callback, um mir zu sagen, wann ein ScrollView das Scrollen beendet hat und auch eine Möglichkeit, die aktuelle Y-Position der ScrollView zu erhalten. Gibt es solche Methoden, die ich verwenden könnte?

Ich schaute durch die ScrollView Dokumente, aber nichts sprang auf mich. Ich bin immer noch nicht sehr vertraut mit den Namensschemata von Android, vielleicht habe ich irgendwo etwas offensichtlich übersehen.

Wie auch immer, jede Hilfe würde hier geschätzt werden. Prost.

Antwort

4

Sie können OnTouchListener verwenden, um zu erkennen, wann der Benutzer die Liste drückt/freigibt.

Sie können auch die onScrollStateChanged Methode der OnScrollListener Klasse verwenden (höchstwahrscheinlich in Verbindung mit einem Touch-Hörer) Änderungen zu erkennen in den SCROLL_STATE - wenn die Liste den Zustand Scrollen wird von einem Zustand ändern, die nicht gestoppt hat SCROLL_STATE_IDLE bis SCROLL_STATE_IDLE.

Alternativ, wenn Sie 2.3 oder höher verwenden, können Sie einen OverScroller verwenden, um den gewünschten Effekt zu erhalten (siehe Modifying Android OverScroll für, wie man den Überrolleneffekt zu einem iPhone wie einem ändert).

+13

Es gibt keinen OnScrollListener für ScrollView – Frank

Verwandte Themen