要实现左右滑动事件,先实例化GestureDetector对象,然后重写onFling方法,在此方法内判断手势做出不同的处理。
MainActivity.java
public MainActivity extends Activity {
private final int RIGHT = 0;
private final int LEFT = 1;
private GestureDetector gestureDetector;
@Override
public void onCreate(Bundle savedInstanceState) {
gestureDetector = new GestureDetector(getActivity(),
new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
float x = e2.getX() - e1.getX();
float y = e2.getY() - e1.getY();
// 判断手势是否为左右滑动并做处理
if (Math.abs(y) >= Math.abs(x)) {
// 这里加了一个判断防止左右滑动对上下拉操作的影响
} else if (x > 0) {
onFlingDo(RIGHT);
} else if (x < 0) {
onFlingDo(LEFT);
}
return super.onFling