Android:在multiTouch中未调用OnTouchListener.OnTouch

时间:2012-06-02 14:59:10

标签: android multi-touch ontouchlistener

我在我的应用程序中实现了多个触摸按钮,通过definyng并将我的OnTouchListener(和onTouch方法)版本附加到我的所有按钮上。 一切都完美无缺,除了一件似乎属于听众标准行为的事情。我希望能够在不发布代码的情况下解释它,因为它很长。

如果我单击并按住某个按钮,将按预期调用onTouch方法,并单击应用程序看到的按钮。 如果我单击并按住第二个,则按预期调用onTouch方法(与第一个按钮相关),并单击应用程序看到按钮。

如果我只释放第二个按钮,如果第一个按钮上的手指保持绝对静止,则不会调用onTouch事件,也不会逻辑释放第二个按钮。只有当我至少移动一个像素的第一个手指时才会调用onTouch方法,并且只有在第二个按钮被释放的那一刻才会被调用。

我知道很难将手指准确地保持在同一位置超过一毫秒:-),但有时它会发生..我不得不花一些时间来理解这种行为的原因,并且我没有找到解决方案,你有任何建议解决这个问题吗? 非常感谢你。

1 个答案:

答案 0 :(得分:0)

在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;

这有助于我避免推送不准确。