0

我想为button.doble单击事件。任何人都可以给我一个想法。

谢谢

4

1 回答 1

2

为什么不用长按?还是您已经将其用于其他用途?长按比双按的优势:

  1. 长按是 UI 指南中推荐的交互方式,而不是双击。
  2. 这是用户的期望;用户可能不会找到双击操作,因为他们不会去寻找它
  3. 它已经在 API 中处理。
  4. 实现双点触控会影响单点触控的处理,因为您必须等待查看每个单点触控是否会变成双点触控,然后才能处理它。

如果你想双击:你可以使用 GestureDetector。

请参阅以下代码:

public class MyView extends View {

GestureDetector gestureDetector;

public MyView(Context context, AttributeSet attrs) {
    super(context, attrs);
            // creating new gesture detector
    gestureDetector = new GestureDetector(context, new GestureListener());
}

// skipping measure calculation and drawing

    // delegate the event to the gesture detector
@Override
public boolean onTouchEvent(MotionEvent e) {
    return gestureDetector.onTouchEvent(e);
}


private class GestureListener extends GestureDetector.SimpleOnGestureListener {

    @Override
    public boolean onDown(MotionEvent e) {
        return true;
    }
    // event when double tap occurs
    @Override
    public boolean onDoubleTap(MotionEvent e) {
        float x = e.getX();
        float y = e.getY();

        Log.d("Double Tap", "Tapped at: (" + x + "," + y + ")");

        return true;
    }
}
}
于 2012-10-16T07:35:27.353 回答