Estoy usando un HorizontalScrollView diseño y necesito identificar que el usuario ha alcanzado el punto inicial y final del desplazamiento.
Porque ListViewhe intentado con el onScrollListenery es posible encontrar el punto inicial y final del desplazamiento.
Traté de hacer lo mismo en mi Scrollviewpero parece que no es posible. ¿Hay alguna otra forma posible de lograr lo que necesito?
android
listener
scrollview
arnp
fuente
fuente

onStarthacer el truco:hsv.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {@Override public void onScrollChanged() {Log.i(TAG,"scroll:"+hsv.getScrollX());}});en onStart () dondehsves unaHorizontalScrollViewobra.Respuestas:
Cada instancia de Ver llamadas
getViewTreeObserver(). Ahora, al mantener una instancia deViewTreeObserver, puede agregarle unaOnScrollChangedListener()mediante el métodoaddOnScrollChangedListener().Puede ver más información sobre esta clase aquí .
Le permite estar al tanto de cada evento de desplazamiento, pero sin las coordenadas. Sin embargo, puede obtenerlos utilizando
getScrollY()ogetScrollX()desde el oyente.fuente
hsv.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {@Override public void onScrollChanged() {Log.i(TAG,"scroll:"+hsv.getScrollX());}});en onStart () dondehsves unHorizontalScrollViewtrabajo. Sospecho que lo mismo funcionará para un ScrollView también.addy noset, todos los oyentes serán retenidos hasta que se eliminen explícitamente. Por lo tanto, la clase anónima utilizada como implementación de escucha en la muestra se filtrará (junto con todo lo que hace referencia, es decir, la clase externa).Esto puede ser muy útil. Usar en
NestedScrollViewlugar deScrollView. Support Library 23.1 introdujo unOnScrollChangeListenertoNestedScrollView. Entonces puedes hacer algo como esto.fuente
NestedScrollViewes parte de la biblioteca de soporte, susetOnScrollChangeListenermétodo no tiene un requisito mínimo de versión.View'ssetOnScrollChangeListenerque requiere API nivel 23Aquí hay un HorizontalScrollView derivado que escribí para manejar notificaciones sobre desplazamiento y finalización de desplazamiento. Maneja adecuadamente cuando un usuario ha dejado de desplazarse activamente y cuando desacelera por completo después de que un usuario suelta:
fuente
Si desea conocer la posición de desplazamiento de una vista, puede usar la siguiente función de extensión en la clase Vista:
fuente
Puedes usar en
NestedScrollViewlugar deScrollView. Sin embargo, cuando se utiliza un Kotlin Lambda, no sabrá que desea NestedScrollView's ensetOnScrollChangeListenerlugar de uno en View (que es el nivel 23 de API). Puede solucionar esto especificando el primer parámetro como NestedScrollView.fuente
fuente
puede definir una clase personalizada de ScrollView y agregar una interfaz que se llamará al desplazarse así:
fuente