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