Кинетическая прокрутка с ListBox или ListView? - PullRequest
3 голосов
/ 25 апреля 2010

Я делаю простое приложение для устройств с сенсорным экраном, и я хотел бы реализовать сегодняшнюю моду: кинетическая прокрутка. Можно ли это сделать, и если да, то как?

PS: Кинетическая прокрутка. Механизм прокрутки, при котором вы не используете полосу прокрутки для прокрутки содержимого, но вы касаетесь самого списка, тянете и толкаете его. Затем «физический движок» отсчитывает скорость и останавливается на основании заданных настроек.

1 Ответ

4 голосов
/ 25 апреля 2010

Используйте уравнения движения .

Очень простой набросок:

Вам дана скорость от нуля до максимума, maxV (в зависимости от количества элементов в списке) и коэффициент замедления.

Получить ускорение пальца от устройства, A и времени, когда оно было применено, T

Рассчитать начальную скорость прокрутки по v = min {maxV, aT}

Применяйте коэффициент замедления к текущей скорости, пока не достигнете нуля, вызывая события прокрутки списка со скоростью, пропорциональной текущей скорости прокрутки.

Возможно, посмотрите на Kinetic Scrolling Demo с источником

...