Ejemplo sencillo de Android Scroller

¿Puede alguien darme ejemplo simple sobre la clase Scroller? Según entiendo, encapsula el desplazamiento, así que necesito comenzar a calcular y después manualmente actualice ScrollView a nuevas posiciones. Así que solo intento

Scroller scroller = new Scroller(getApplicationContext()); scroller.startScroll(0, 0, 10, 10, 500); for (int i = 0; i < 100; i++) { Log.d("scroller", scroller.getCurrX()+" "+ scroller.getCurrY()); } 

Todo lo que tengo en la salida es sólo ceros. ¿Dónde está mi error?

 private class Flinger implements Runnable { private final Scroller scroller; private int lastX = 0; Flinger() { scroller = new Scroller(getActivity()); } void start(int initialVelocity) { int initialX = scrollingView.getScrollX(); int maxX = Integer.MAX_VALUE; // or some appropriate max value in your code scroller.fling(initialX, 0, initialVelocity, 0, 0, maxX, 0, 10); Log.i(TAG, "starting fling at " + initialX + ", velocity is " + initialVelocity + ""); lastX = initialX; getView().post(this); } public void run() { if (scroller.isFinished()) { Log.i(TAG, "scroller is finished, done with fling"); return; } boolean more = scroller.computeScrollOffset(); int x = scroller.getCurrX(); int diff = lastX - x; if (diff != 0) { scrollingView.scrollBy(diff, 0); lastX = x; } if (more) { getView().post(this); } } boolean isFlinging() { return !scroller.isFinished(); } void forceFinished() { if (!scroller.isFinished()) { scroller.forceFinished(true); } } } 

Tomado de https://stackoverflow.com/a/6219382/1351347

El último parámetro en startScroll() es la duración. Probablemente su for -loop termina antes de que el scroller haga algo 🙂 Y también debe llamar a computeScrollOffset() Pruebe este código, funciona:

 Scroller scroller = new Scroller(getApplicationContext()); scroller.startScroll(0, 0, 100, 100, 500); while (!scroller.isFinished()) { Log.d("scroller", scroller.getCurrX() + " " + scroller.getCurrY()); scroller.computeScrollOffset(); } 
  • Limitar el número de líneas en TextView
  • Smooth Scroll para GridView
  • Vista previa de desplazamiento en Viewpager
  • Sincronizar las posiciones de desplazamiento ScrollView - android
  • ¿Efecto de desplazamiento personalizado para scrollview?
  • Cómo agregar EditText en listview y obtener su valor dinámicamente en todas las filas?
  • SetCurrentItem en ViewPager no se desplaza inmediatamente en la posición correcta
  • Android, LinearLayout no se desplaza
  • Infinite Auto Scroll ListView con velocidad de desplazamiento controlada
  • Cómo habilitar la funcionalidad de desplazamiento a un diseño lineal en android?
  • Vista de texto no desplazable en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.