![](/img/trans.png)
[英]ACTION_UP is not triggered for a quick/normal click on OnTouchListener.onTouch
[英]Android: OnTouchListener.OnTouch not called in multiTouch
通过定义并在所有按钮上附加我的OnTouchListener(和onTouch方法)版本,我在应用程序中实现了多点触摸按钮。 除了似乎属于侦听器标准行为的一件事以外,所有其他方法都可以正常工作。 我希望能够解释它而无需发布代码,因为它很长。
如果单击并按住一个按钮,则会按预期方式调用onTouch方法,并且应用程序会看到该按钮被单击。 如果我单击并按住第二个按钮,则会按预期方式调用onTouch方法(与第一个按钮相关),并且应用程序会看到按钮被单击。
如果仅释放第二个按钮,则如果我的手指完全不动,则不会调用onTouch事件,并且第二个按钮也不会被逻辑释放。 仅当我至少移动一个像素的第一根手指时才调用onTouch方法,并且仅在此刻释放第二个按钮。
我知道很难将手指完全放在同一位置超过一毫秒:-),但有时会发生..我不得不花一些时间来了解这种行为的原因,但我没有找不到解决方案,您是否有解决此问题的建议? 非常感谢你。
在您的onTouch内尝试
PointF curr = new PointF(event.getX(), event.getY());
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
float xDiff = Math.abs(curr.x-start.x);
float yDiff = Math.abs(curr.y-start.y);
if (xDiff < 5f && yDiff < 5f) {
//insert here your code when button is click
}
break;
这对我帮助避免不正确的推送。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.