2010-09-17 12 views
6

Ho un ScrollView che ha due immagini nascoste, una in alto e una in basso. In mezzo c'è un sacco di contenuti visibili.Android: Rileva quando ScrollView ha finito di scorrere e tornare indietro?

Quello che devo fare è rendere queste immagini nascoste per impostazione predefinita, ma quando si scorre verso l'alto o completamente verso il basso è possibile vederle mentre si sta scorrendo. Ma non appena smetti di scorrere, dovrebbe rimbalzare nell'area visibile in modo che le immagini nascoste non vengano visualizzate.

Fondamentalmente sto cercando di imitare la funzione di scorrimento di rimbalzo di UIScrollView per iPhone.

Ho il mio ScrollView all setup e faccio un scroll all'inizio in modo da nascondere l'immagine nascosta in alto. Ora tutto quello che devo fare è rilevare quando uno scorrimento è terminato, capire la posizione Y e controllare se viene mostrata un'immagine nascosta. Se lo è, vorrei solo a livello di programmazione scorrere la vista indietro in modo che l'immagine nascosta sia nascosta.

Spero che tutto ciò abbia un senso.

Quindi, in ogni caso, so come scorrere a scorrimento di un ScrollView a livello di programmazione. Ora quello di cui ho bisogno è una sorta di callback per dirmi quando ScrollView ha terminato lo scrolling e anche un modo per ottenere la posizione 'Y' corrente di ScrollView. Ci sono metodi che potrei usare?

Ho controllato i documenti ScrollView ma non mi è saltato fuori niente. Non ho ancora molta familiarità con gli schemi di denominazione di Android, quindi forse mi sono perso qualcosa di ovvio da qualche parte.

In ogni caso, qualsiasi aiuto sarebbe apprezzato qui. Saluti.

risposta

4

È possibile utilizzare un OnTouchListener per rilevare quando l'utente preme/rilascia l'elenco.

È inoltre possibile utilizzare il metodo onScrollStateChanged della classe OnScrollListener (molto probabilmente in concomitanza con un tocco ascoltatore) per rilevare i cambiamenti nel SCROLL_STATE - quando la lista si è fermato a scorrimento lo stato passerà da uno stato che non è SCROLL_STATE_IDLE a SCROLL_STATE_IDLE.

In alternativa, se si utilizza 2.3 o superiore, è possibile utilizzare OverScroller per ottenere l'effetto desiderato (vedere Modifying Android OverScroll per come modificare l'effetto di scorrimento su un iPhone come quello).

+13

non c'è OnScrollListener per ScrollView – Frank

Problemi correlati