其他分享
首页 > 其他分享> > android-自定义视图上的手势检测器

android-自定义视图上的手势检测器

作者:互联网

我定义了一个扩展GestureDetector.SimpleOnGestureListener的类,并重写了onDown和onFling方法

class MyGestureDetector extends GestureDetector.SimpleOnGestureListener {

    @Override
    public boolean onDown(MotionEvent e) {
        // TODO Auto-generated method stub
        return super.onDown(e);
    }

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
            float velocityY) {
        // TODO Auto-generated method stub

        Toast.makeText(PersianDatePicker.this.getContext(),
                "fling " + velocityX + " - " + velocityY, Toast.LENGTH_LONG)
                .show();

        return super.onFling(e1, e2, velocityX, velocityY);
    }
}

我还定义了一个GestureDetectorCompat实例

@Override
public boolean onTouchEvent(MotionEvent event) {

    mDetector.onTouchEvent(event);

    return super.onTouchEvent(event);
}

我在一项活动中对其进行了测试,并且效果很好.我想在自定义视图中使用它,但是它不起作用!而且我没有错误.

解决方法:

在您的自定义视图中,尝试执行以下操作:

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (mGestureDetector.onTouchEvent(event)) {
        return true;
    }    

    return super.onTouchEvent(event);
}

或者,更简洁地说:

@Override
public boolean onTouchEvent(MotionEvent event) {
    return mGestureDetector.onTouchEvent(event) || super.onTouchEvent(event);
}

标签:gesturedetector,android
来源: https://codeday.me/bug/20191121/2050177.html