Desplazamiento automático de AdapterView (Listview, GridView, …)

Fondo

Estoy tratando de hacer un AdapterView (listview, gridview, …) para desplazarse lentamente auto.

El usuario puede cambiarlo cuando lo desee, y no es necesario moverse hasta el final del adaptadorView.

Nuevamente, NO quiero hacer que el adaptador vaya a desplazarse hasta el final, ya que el usuario debería poder cancelar el desplazamiento automático.

Lo que he intentado

Para esto, estoy usando el siguiente código:

private static final SCROLLING_RUNNABLE = new Runnable() { @Override public void run() { final int duration = 10; final int pixelsToMove = 1; mAdapterView.smoothScrollBy(pixelsToMove, duration); mHandler.postDelayed(this, duration); } }; ... // use this to turn auto-scrolling on: mHandler.post(SCROLLING_RUNNABLE); // use this to turn auto-scrolling off: mHandler.removeCallbacks(SCROLLING_RUNNABLE); 

El problema

El código normalmente funciona, pero en algunos casos, toma mucho tiempo hasta que comience el desplazamiento.

De hecho, parece que cuanto más lo encienda y apague, más tendré que esperar a que comience a auto-scrolling.

Creo que este problema sólo se produce si vuelvo a la parte superior. Funciona muy bien cuando el adaptador está en desplazado un poco.

Ya que no puedo averiguar cómo obtener el valor de desplazamiento actual de la adapterView, no puedo averiguar cómo solucionar este problema.

La pregunta

¿Qué puedo hacer para solucionar este problema? ¿Hay alguna alternativa?

Puede iniciar el desplazamiento SCROLLING_RUNNABLE.run();

UPDATE O puede utilizar animaciones:

 Animation animation = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { super.applyTransformation(interpolatedTime, t); // scroll the list } }; 

Y clearAnimation() para detener.

  • Desplazarse hasta el elemento de formulario
  • Cómo inhabilitar "autoscroll" hora en valor de ajuste minuto en el selector de tiempo android
  • Android establece scrollLeft al actualizar contenido en el evento de desplazamiento no actualiza la posición de la barra de desplazamiento
  • Incendios de cromo móvil resize evento en desplazamiento
  • Cómo desplazarse y desplazarse hasta el último en Appium
  • Android: cacheColorHint = "# 00000000" no funcionan para <ExpandableListView
  • Android listview muestra datos falsos después de desplazarse (adaptador personalizado)
  • Galería de Android: reemplaza el mapa de bits en ImageView después de que el desplazamiento se detuvo
  • Android: Detecta el teclado virtual abierto
  • Cómo mantener la posición de desplazamiento de listview cuando se actualiza
  • La función de desplazamiento fijo de la imagen de fondo en dispositivos móviles de toque no se actualiza inmediatamente
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.