使用:
//手势检测
private GestureDetector gestureDetector;
//手势监听
gestureDetector = new GestureDetector(getContext(), simpleOnGestureListener);
gestureDetector.setIsLongpressEnabled(false); //不允许长按
//触发事件
@Override
public boolean onTouchEvent(MotionEvent event) {
//返回其他监听
return gestureDetector.onTouchEvent(event);
}
private GestureDetector.SimpleOnGestureListener simpleOnGestureListener = new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onDown(MotionEvent e) {
Log.d(TAG, "onDown: ");
return true; //默认false
}
@Override
public void onShowPress(MotionEvent e) {
Log.d(TAG, "onShowPress: ");
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
Log.d(TAG, "onSingleTapUp: ");
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
Log.d(TAG, "onScroll: ");
return true;
}
@Override
public void onLongPress(MotionEvent e) {
Log.d(TAG, "onLongPress: ");
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
Log.d(TAG, "onFling: ");
return false;
}
};
解决方法就是:
把onDown()的返回值改为true,因为所有手势是以onDown()开始,如果是false那么就检测不了其他手势。
网友评论