无法同时处理点击和触摸事件

2024-01-25

我正在尝试处理按钮上的触摸事件和单击事件。我执行以下操作:

button.setOnClickListener(clickListener);
button.setOnTouchListener(touchListener);

当注册任何一个侦听器时,一切都会正常工作,但是当我尝试使用它们时,只会触发触摸事件。有什么解决办法吗?我究竟做错了什么?


这有点棘手。

如果你设置onTouchListener你需要返回true in ACTION_DOWN,告诉系统我已经使用了该事件,并且它不会渗透到其他侦听器。

但是之后OnClickListener不会被解雇。

所以你可能会想,我就在那里做我的事然后回来false这样我也可以收到点击。 如果您这样做,它会起作用,但您将不会订阅其他即将到来的触摸事件(ACTION_MOVE, ACTION_UP) 因此,唯一的选择就是返回true那里,但是您将不会收到我们之前所说的任何点击事件。

所以你需要手动执行点击ACTION_UP with view.performClick()

这会起作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法同时处理点击和触摸事件 的相关文章