2014-05-01 11 views
5

Ho bisogno di fare alcune animazioni in una lista dopo che è schizzar e sta per stop.I avere un controllo ListView che sta per essere di altezza fissa (beh mi non chiedere perché), e ogni volta che il rotolo si ferma, si deve avere tre elementi visibili. Quello che faccio ora è rilevare quando la lista raggiunge SCROLL_STATE_IDLE e se ho due elementi visibili in quel momento, io uso smoothScrollToPosition e raggiungere uno stato di 3 articoli visibile e funziona bene, ma quello che vorrei fare è rilevare quando il rotolo sta per fermarsi e interrompere lo scorrimento programmaticamente quando sono visibili tre elementi. E 'anche possibile ... Qualsiasi frammento di codice, pseudo codice, Algo mi aiuterebbe.Determina se la vista elenco sta per interrompere lo scorrimento?

risposta

2

È possibile impostare un OnScrollListener e quindi memorizzare il valore da absListView.getScrollY() ogni campione e confrontarlo con il campione precedente per calcolare la velocità dello scorrimento. Una volta che scende sotto una soglia che definisci, puoi controllare lo scorrimento.

+0

getScrollY in una visualizzazione elenco restituirà sempre 0. vedere questo: -http: //stackoverflow.com/questions/2132370/android-listview-getscrolly-does-it-work – Rasmus

+0

Ah, dang it. Che ne dite di usare qualcosa di simile per calcolare la velocità di scorrimento: http://stackoverflow.com/questions/7895504/how-to-get-the-scroll-speed-on-a-listview – anakin78z

+0

Am già usando, ma la questione è che le velocità finali prima di arrivare al minimo non sono coerenti. A volte raggiungeva la soglia, ea volte non lo fa. Così, per esempio: - si decide di prendere contol del rotolo quando la velocità raggiunge i 10, si rende conto a volte, lo scorrimento si arresta quando la velocità è al 16.It può sostenere che si può alzare la soglia, ma poi ci sono molte altri problemi che emergono in particolare quando l'utente ha lanciato lentamente l'elenco. – Rasmus

Problemi correlati