Android SimpleNogestureListener从不使用onFling(…)方法

Android SimpleNogestureListener从不使用onFling(…)方法,android,android-activity,gesturedetector,Android,Android Activity,Gesturedetector,嗨,SimpleGestureListener在我的应用程序中不起作用,这就是我实现它的方式。也许你能找出问题所在。问题是调试显示应用程序从未进入onFling(…)方法和gdt.onTouchEvent(事件);始终返回false:/ 有什么想法吗??谢谢 我的活动课 public class SimpleActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { s

嗨,SimpleGestureListener在我的应用程序中不起作用,这就是我实现它的方式。也许你能找出问题所在。问题是调试显示应用程序从未进入onFling(…)方法和gdt.onTouchEvent(事件);始终返回false:/ 有什么想法吗??谢谢

我的活动课

 public class SimpleActivity extends Activity{


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.simpleLayout);

    final ImageView imageView = (ImageView) findViewById(R.id.gggbbb);
     imageView.setOnTouchListener(new OnFlingGestureListener() {

        @Override
        public void onTopToBottom() {
           System.out.println("top");
        }

        @Override
        public void onRightToLeft() {
            System.out.println("right");
        }

        @Override
        public void onLeftToRight() {
            System.out.println("left");
        }

        @Override
        public void onBottomToTop() {
            System.out.println("bottom");
        }
     });



}


    }
我的抽象听众

 package com.dmd.client.detailsMenus;

 import android.view.GestureDetector;
 import android.view.GestureDetector.SimpleOnGestureListener;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.View.OnTouchListener;

 public abstract class OnFlingGestureListener implements OnTouchListener {

  private final GestureDetector gdt = new GestureDetector(new GestureListener());

  @Override
  public boolean onTouch(final View v, final MotionEvent event) {
     return gdt.onTouchEvent(event);
  }

  private final class GestureListener extends SimpleOnGestureListener {

     private static final int SWIPE_MIN_DISTANCE = 60;
     private static final int SWIPE_THRESHOLD_VELOCITY = 100;

     @Override
     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
         if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
             onRightToLeft();
             return true;
          } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
             onLeftToRight();
             return true;
          }
          if(e1.getY() - e2.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY) {
             onBottomToTop();
             return true;
          } else if (e2.getY() - e1.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY) {
             onTopToBottom();
             return true;
          }
          return false;
     }
  }

  public abstract void onRightToLeft();

  public abstract void onLeftToRight();

  public abstract void onBottomToTop();

  public abstract void onTopToBottom();

}
替换此事件:

@Override
public boolean onTouch(final View v, final MotionEvent event) {
  gdt.onTouchEvent(event);
  return true;
}
应该行得通