繁体   English   中英

Android:在MultiTouch中未调用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM