我正面临一种情况。
我编写了一个实现onTouchListener的类,我已经在视图中注册了(GLSurfaceView,确切地说),我用它来提取所有 有关触摸事件的信息。它非常适合我。并实现onTouch 方法意味着然后处理事件并且不会传播它。
但是最近我需要为我的游戏实现滑动功能。它需要我实施 onTouchEvent为我的观点。但是由于我的onTouchListener实现类已经在实现onTouch方法,因此不会调用onTouchEvent。我想保留我的onTouchListener实现。 请告诉我如何解决这个问题。
和Manish
答案 0 :(得分:0)
在你的班级中提出以下内容:
//not necessarily OnCreate but put it in whatever constructor your class uses
OnCreate(Context context){
mGestureDetector = new GestureDetector(context, new CustomGestureListener());
}
@Override
public boolean onTouchEvent(MotionEvent event) {
mGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
private final GestureDetector mGestureDetector;
private class CustomGestureListener extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
//get the fling
}
}
这允许onTouchEvent执行,但它也通过调用onTouchEvent中的手势检测器来检查手势事件。