同时实现onTouchListener和onGestureLitener

时间:2013-11-19 13:01:47

标签: android

我正面临一种情况。

我编写了一个实现onTouchListener的类,我已经在视图中注册了(GLSurfaceView,确切地说),我用它来提取所有 有关触摸事件的信息。它非常适合我。并实现onTouch 方法意味着然后处理事件并且不会传播它。

但是最近我需要为我的游戏实现滑动功能。它需要我实施 onTouchEvent为我的观点。但是由于我的onTouchListener实现类已经在实现onTouch方法,因此不会调用onTouchEvent。我想保留我的onTouchListener实现。 请告诉我如何解决这个问题。

和Manish

1 个答案:

答案 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中的手势检测器来检查手势事件。

另见答案:How to set OnTouchListener for the entire screen?