Подтвердить что ты не робот

Android Listview замедляет скорость прокрутки

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

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

Какой трюк здесь - как мне управлять скоростью прокрутки?

Спасибо.

4b9b3361

Ответ 1

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

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

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

Ответ 2

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