2011-04-08 8 views
21

La vitesse de défilement dans le ListView est beaucoup trop rapide pour mon application. J'ai besoin de le ralentir beaucoup.Android Listview ralentir vitesse de défilement

Je n'arrive pas à comprendre comment faire. Les seules choses que j'ai pu trouver dans la documentation sont une fonction "setFriction" qui n'est supportée que dans le niveau API 11, et une méthode statique "getScrollFriction" qui ne peut pas être surchargée et qui n'a pas de setter correspondant.

Quel est le truc ici - comment contrôler la vitesse de défilement?

Merci.

Répondre

11

Oui, il n'y a pas de moyen facile. Avant API 11, le frottement était codé en dur à l'intérieur de Scroller, et il n'y a pas de moyen simple de changer la vue Scroller d'une vue défilante. Scroller lui-même est assez simple, mais le membre mScroller dans AbsListView est privé, donc vous ne pouvez pas simplement étendre ListView.

13

vérifié que cela fonctionne vraiment bien pour API> = 11:

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

Notez que la vitesse de défilement diminue à mesure que l'augmentation de friction. Pour réduire le moment de défilement d'une quantité appropriée, j'ai fini par utiliser un facteur d'échelle de friction de 10. YMMV.

Questions connexes