Android Listview замедляет скорость прокрутки
Скорость прокрутки в ListView слишком быстро для моего приложения. Мне нужно немного замедлить его.
Я не могу понять, как это сделать. Единственное, что я мог найти в документации, это функция "setFriction", которая поддерживается только в уровне API 11, и статический метод getScrollFriction, который нельзя переопределить и не имеет соответствующего установщика.
Какой трюк здесь - как мне управлять скоростью прокрутки?
Спасибо.
Ответы
Ответ 1
Проверено, что это действительно хорошо работает для API >= 11:
listView.setFriction(ViewConfiguration.getScrollFriction() * FRICTION_SCALE_FACTOR)
Обратите внимание, что скорость прокрутки уменьшается по мере увеличения трения. Чтобы уменьшить импульс прокрутки на подходящую величину, я закончил использовать коэффициент трения, равный 10. YMMV.
Ответ 2
Да, там нет простого способа. До API 11 трение было жестко закодировано внутри Scroller
, и нет простого способа изменить прокрутку вида Scroller
. Scroller
сам довольно прост, но член mScroller
в AbsListView
является закрытым, поэтому вы не можете просто расширять ListView
.