Infinite Auto Scroll ListView con velocidad de desplazamiento controlada

He estado trabajando en una idea ListView donde se mantiene el desplazamiento automático sin interacción del usuario y que es absolutamente factible utilizando las API de Android por ejemplo smoothScrollToPositionFromTop .

He implementado ListView BaseAdapter donde cargar elementos para siempre (casi) para obtener una auto no repetición repetida ListView .

Lo que quiero lograr aquí es mantener mi ListView desplazamiento para siempre con cierta velocidad (lento) para hacer los elementos claros y legibles mientras se desplaza hacia abajo, no estoy seguro si ListView es mi mejor opción aquí.

a continuación hay un fragmento de lo que estoy tratando de hacer. el resultado es bueno de alguna manera, pero no es lo suficientemente suave, puedo sentir el ListView parpadea.

Necesito mejorar la suavidad, la eficiencia y el control de la velocidad

 new Thread(new Runnable() { @Override public void run() { int listViewSize = mListView.getAdapter().getCount(); for (int index = 0; index < listViewSize ; index++) { mListView.smoothScrollToPositionFromTop(mListViewA.getLastVisiblePosition() + 100, 0, 6000); try { // it helps scrolling to stay smooth as possible (by experiment) Thread.sleep(60); } catch (InterruptedException e) { } } } }).start(); 

Sugiero, thath su adaptador implementado de manera efectiva. por lo que este código es sólo scrolls listview

necesita probar otros valores de variables

 final long totalScrollTime = Long.MAX_VALUE; //total scroll time. I think that 300 000 000 years is close enouth to infinity. if not enought you can restart timer in onFinish() final int scrollPeriod = 20; // every 20 ms scoll will happened. smaller values for smoother final int heightToScroll = 20; // will be scrolled to 20 px every time. smaller values for smoother scrolling listView.post(new Runnable() { @Override public void run() { new CountDownTimer(totalScrollTime, scrollPeriod ) { public void onTick(long millisUntilFinished) { listView.scrollBy(0, heightToScroll); } public void onFinish() { //you can add code for restarting timer here } }.start(); } }); 

Aquí algunas sugerencias: Simular onFling () programáticamente en lugar de detectarlo (Android)

y programaticamente Fling ListView Android

Es difícil averiguar lo que usted llama lo suficientemente suave en su caso. Por lo general, los problemas de suavidad están relacionados con un uso no óptimo de listas y problemas en los diseños de celdas o en la creación / reciclado de vistas dentro del método getView de los adaptadores.

¿ Utiliza un marcador de posición ? Una cosa importante a considerar es también el uso Drawables .

Nunca he logrado lo que buscas, pero una idea simple que me viene a la mente es:

  • encontrar una forma de desplazar la vista de 1 posición o 2.
  • utilice un búfer de anillo dentro de su adaptador. Por ejemplo, digamos que tienes 100 elementos en tu lista de artículos. Luego, al principio, el elemento 0 de la lista es el elemento 0 de su lista. Cuando la vista de lista se desplaza hacia arriba de 1 elemento, el elemento 0 de listview debe convertirse en el elemento 1 de su lista. Por lo tanto, el problema no sería desplazamiento sino más sincronización con desplazamiento y mostrar una lista interminable de elementos.
  • Android ListView alpha scroller para desplazamiento rápido de larga lista
  • Android No se puede eliminar el color en la parte superior e inferior
  • Vista de cuadrícula de desplazamiento horizontal
  • Vista web de Android: detección de desplazamiento
  • Cómo guardar la posición de desplazamiento de RecyclerView en Android?
  • Cómo desplazarse pantalla en android
  • AppBarLayout no siempre vuelve a entrar en desplazamiento hacia abajo
  • Permitir que EditText se desplace mientras está deshabilitado
  • Android: Desplazamiento automático de texto en TextView
  • Detectar cuando RecyclerView alcanza la posición más baja durante el desplazamiento
  • Android infinita rejilla de desplazamiento, el adaptador tiene que crecer indefinidamente?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.