Android Listview замедляет скорость прокрутки - PullRequest
21 голосов
/ 08 апреля 2011

Скорость прокрутки в ListView слишком высока для моего приложения. Мне нужно сильно его замедлить.

Я не могу понять, как это сделать. Единственное, что я мог найти в документации, это функция setFriction, которая поддерживается только в API Level 11, и статический метод getScrollFriction, который не может быть переопределен и не имеет соответствующего установщика.

В чем тут хитрость - как мне контролировать скорость прокрутки?

Спасибо.

Ответы [ 2 ]

13 голосов
/ 18 июля 2014

Проверено, что это действительно хорошо работает для API> = 11:

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

Обратите внимание, что скорость прокрутки уменьшается с увеличением трения.Чтобы уменьшить импульс прокрутки на подходящую величину, я использовал коэффициент трения 10. YMMV.

11 голосов
/ 08 апреля 2011

Да, простого пути нет.До API 11 трение было жестко закодировано внутри Scroller, и не существует простого способа изменить представление прокрутки Scroller.Scroller само по себе довольно просто, но член mScroller в AbsListView является приватным, поэтому вы не можете просто расширить ListView.

...