2011-04-08 11 views
21

La velocidad de desplazamiento en el ListView es demasiado rápida para mi aplicación. Necesito desacelerarlo mucho.Vista de lista de Android ralentizar la velocidad de desplazamiento

No puedo encontrar la manera de hacerlo. Las únicas cosas que pude encontrar en la documentación son una función "setFriction" que solo es compatible con API Level 11, y un método estático "getScrollFriction" que no puede anularse y no tiene un setter correspondiente.

¿Cuál es el truco aquí? ¿Cómo controlo la velocidad de desplazamiento?

Gracias.

Respuesta

11

Sí, no hay una manera fácil. Antes de API 11, la fricción estaba codificada dentro de Scroller, y no hay una forma sencilla de cambiar la vista de desplazamiento Scroller. Scroller en sí es bastante simple, pero el miembro mScroller en AbsListView es privado, por lo que no puede ampliar ListView.

13

verificado que esto funciona muy bien para el API> = 11:

listView.setFriction(ViewConfiguration.getScrollFriction() * FRICTION_SCALE_FACTOR) 

Tenga en cuenta que la velocidad de desplazamiento disminuye a medida que aumenta la fricción. Para disminuir el impulso de desplazamiento en una cantidad adecuada, terminé usando un factor de escala de fricción de 10. YMMV.

Cuestiones relacionadas