告诉我如何在处理 ViewPager'e 上的点击时只捕获一个事件。例如,在 viewPager 中滚动时,会同时触发两个 MotionEvent.ACTION_DOWN 事件,并立即触发 MotionEvent.ACTION_MOVE。我只想跟踪 MotionEvent.ACTION_DOWN 事件,即点击,而不是分页。
更新。单击时,它会触发:MotionEvent.ACTION_DOWN,然后是 MotionEvent.ACTION_UP。分页时,增加一个中间动作MotionEvent.ACTION_MOVE。我不需要跟踪分页,即分页时如何摆脱MotionEvent.ACTION_DOWN?
好吧,首先,两件事不会同时发生,它们是依次发生的——一个接一个。
示例 - 用户将手指放在屏幕上,按住它,然后将其移开。
ACTION_DOWN - 将发生的第一个事件。
ACTION_MOVE - 这个事件很可能会第二次,甚至第三次或第四次发生......实际上,用户的手颤抖(对我来说,他们总是颤抖到足以抓住他第二次,并且在第三杯咖啡迟到之后晚上 - 第三次甚至第四次)。
ACTION_UP 是最后一个事件。
还有其他事件,但这三个事件足以让我们作为示例。
嗯,你的问题的答案在于问题本身。您只需要捕获一个事件吗?把网扔在地上!有一种老式的方法来过滤它们:
您甚至可以对每个事件执行特定操作:
您是否需要跟踪除 ACTION_MOVE 之外的所有操作?
您是否需要在没有 ACTION_MOVE 的情况下专门捕获 ACTION_DOWN 和 ACTION_UP?
或者像这样:
这就是我想做的!我坚持按下我忘记了“挤压”。