我的onScroll和are onTouchEvent被调用,但不是onDown方法。实际上,当我在distaceX中登录onDown时,我注销了其中的几个,并且第一个总是相对于我结束最后一个滚动的位置。

 @Override
 public boolean onTouchEvent(MotionEvent me){
   this.detector.onTouchEvent(me);

  return super.onTouchEvent(me);
 }

 @Override
 public boolean onDown(MotionEvent e) {
       Log.d("---onDown---",".");
   return false;

 }

 @Override
 public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
   float distanceY) {
  Log.d("---onScroll---", "" + distanceX);
  return false;
 }


为什么不调用onDown的任何想法?

编辑:

我将onTouchEvent更改为以下代码块,仅记录了ACTION_MOVE。

 float gestureDistance = 0;
 @Override
 public boolean onTouchEvent(MotionEvent me){
     switch (me.getAction() & MotionEvent.ACTION_MASK) {
        case MotionEvent.ACTION_DOWN:
            Log.d("actionDown", "gestureDistance:" + gestureDistance);
            break;
        case MotionEvent.ACTION_UP:
            Log.d("actionUp", "gestureDistance:" + gestureDistance);
            break;
        case MotionEvent.ACTION_MOVE:
            Log.d("actionMove", "gestureDistance:" + gestureDistance);
            break;
        default:
            Log.d("action default", "default");
            break;
    }


编辑:
我认为问题在于我的视图是WebView。我可以阻止webview窃取我的活动吗?

最佳答案

你为什么不做这样的事情:

@Override
public boolean onTouchEvent(MotionEvent event) {

    switch (event.getAction() & MotionEvent.ACTION_MASK) {
        case MotionEvent.ACTION_DOWN:
            //Do something on action down.
        case MotionEvent.ACTION_UP:
            //Do something on action up.
            break;
        case MotionEvent.ACTION_MOVE:
            //Do something when moving.
            break;
    }

    return true;
}


希望这可以帮助。

关于android - OnGestureListener onDown方法永远不会被调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11730425/

10-12 05:01