Как различать перемещение и щелчок в onTouchEvent()?

В моем приложении мне нужно обрабатывать как события перемещения, так и события щелчка.

Щелчок — это последовательность одного действия ACTION_DOWN, нескольких действий ACTION_MOVE и одного действия ACTION_UP. Теоретически, если вы получаете событие ACTION_DOWN, а затем событие ACTION_UP — это означает, что пользователь только что щелкнул ваше представление.

Но на практике эта последовательность не работает на некоторых устройствах. На моем Samsung Galaxy Gio я получаю такие последовательности, когда просто нажимаю «Вид»: ACTION_DOWN, несколько раз ACTION_MOVE, затем ACTION_UP. т.е. Я получаю неожиданные срабатывания OnTouchEvent с кодом действия ACTION_MOVE. Я никогда (или почти никогда) не получаю последовательность ACTION_DOWN -> ACTION_UP.

Я также не могу использовать OnClickListener, потому что он не дает позицию клика. Итак, как я могу обнаружить событие щелчка и отличить его от перемещения?

70
задан Jonik 18 November 2013 в 18:27
поделиться