Я пишу что-то для телефона с сенсорным экраном. Я хочу, чтобы программа запускала указанную функцию, когда пользователь нажимает на экран. Я бы хотел прокрутить экран, когда пользователь перетаскивает палец вверх или вниз по экрану.сенсорный экран: отличить начало прокрутки от крана
ОС имеет три функции обратного вызова (1) обнаруживает, когда экран коснулся, (2) обнаруживает, когда палец перетаскивается на экран и (3) обнаруживает, когда палец покидает экран. В каждом случае функция обратного вызова получает координаты экрана, где произошло соответствующее событие.
Проблема в том, что перетаскивание, очевидно, начинается пальцем, касающимся экрана и заканчивается, когда палец покидает экран. Нажатие обычно определяется как касание, очень короткое перетаскивание и конечное касание. Если я просто назову свою указанную функцию нажатием, я буду запускать события перетаскивания экрана, а не оригинальные краны.
Лучшее, что я могу придумать, это отметить время или место, когда пользователь впервые касается. Если мы находимся в функции обратного вызова перетаскивания на короткое время или расстояние позже, рассматриваем его как свиток. В противном случае, если есть обратный вызов с разрешением на просмотр, относитесь к нему как кран. Проблемы включают в себя затраты времени, определяющие, сколько времени или расстояния использовать в качестве триггера, и если есть более общий общий подход.
Мое приложение находится в python для устройства для symbian. Поскольку это не очень популярная платформа, любые предложения по наилучшему способу реализации будут оценены по достоинству.