我正在尝试处理按钮上的触摸事件和单击事件。我执行以下操作:
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(使用前将#替换为@)