在我的应用程序中,我需要处理移动和点击事件。
一个点击事件是由一个ACTION_DOWN事件、多个ACTION_MOVE事件和一个ACTION_UP事件组成的序列。理论上,如果你获取了一个ACTION_DOWN事件然后是一个ACTION_UP事件 - 这意味着用户刚刚单击了你的View。
但在实践中,这种序列在某些设备上不起作用。在我的三星Galaxy Gio手机上,当我只点击我的View时,我得到这样的序列: ACTION_DOWN, 多次ACTION_MOVE, 然后是ACTION_UP。也就是说,我会得到一些意外的带有ACTION_MOVE操作码的OnTouchEvent触发。我从来没有(或者几乎没有)得到过序列ACTION_DOWN -> ACTION_UP。
我也无法使用OnClickListener,因为它不提供点击位置。那么我该如何检测点击事件并将其与移动事件区分开来?