我想监听手机Activity滑动事件时,用了OnGestureListener的onFling()方法,发现不来事。
于是一番百度、测试之下,总结出了几点。
1、首先Activity实现OnGestureListener和OnTouchListener接口。
2、在Activity这个类里定义成员变量(等会要在onCreate()里实例化):
public GestureDetector gestureDetector;
3、然后获取Activity的RootView(这几步我是写在onCreate()里的),给View设置触摸事件监听器,实例化GestureDetector对象(用的new GestureDetector(Context context, OnGestureListener listenr)这个构造方法):
//获取Activity的RootView
View v = getWindow().getDecorView().getRootView();
//设置事件监听器
v.setOnTouchListener(this);
//实例化GestureDetector
gestureDetector = new GestureDetector(this, this);
4、在onTouch()方法里加上:
gestureDetector.onTouchEvent(motionEvent);
return true;
并且返回值一定要设置为true,表示可以交给GestureListener处理。
5、接下来就可以用onFling(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1)方法了,其中v表示横向速度,v1表示竖向速度。