Android 自定义视图上的手势检测器
我定义了一个类,该类扩展了Android 自定义视图上的手势检测器,android,gesturedetector,Android,Gesturedetector,我定义了一个类,该类扩展了gesturedector.SimpleOnGestureListener,并重写了onDown和onFling方法 class MyGestureDetector extends GestureDetector.SimpleOnGestureListener { @Override public boolean onDown(MotionEvent e) { // TODO Auto-generated method stub
gesturedector.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);
}
如果我在视图(而不是视图的子类化)上设置的
onTouch
方法的View.OnTouchListener()
中,我如何调用super.onTouchEvent(事件)
因为在这种情况下,super
将引用OnTouchListener
?@Suragch-所以您有一个纯视图
,用于实现某种触摸响应逻辑?您可以将视图作为一个注入值传递给您的touch listener,然后它可以从中调用视图的onTouchEvent
,或者您可以放弃所有这些,完全在listener中处理触摸逻辑。采用哪种方法取决于什么适合您的应用程序。是的,这就是我要问的。谢谢。工程团队已修复此问题,相应的文档将在将来更新。您可以在工程团队处查看更多信息。工程团队已修复此问题,相应的文档将在将来更新。