Android:onDoubleTap仅在点击列表项的边缘时检测,而是调用onItemClick

时间:2014-03-07 04:50:50

标签: android listview android-listview double-click onitemclick

我用来显示手机触点列表并尝试点击一个项目,当双击完成时,应该考虑先前的点击项目并拨打电话。 与启用对讲可访问性时的模仿类似。

但是每当我试图双击listitem时,就会调用onItemClick。 但是当对列表项的边缘进行双击时,会捕获doubleTap事件。

有人可以帮助解决可能存在的问题吗?

并且还有助于如何操作:默认情况下,应该选择列表的第一项并说出第一个联系人,当用户滚动阅读下一个联系人并突出显示该列表项时。

1 个答案:

答案 0 :(得分:0)

转载自https://stackoverflow.com/a/6290044

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