我使用dispatchTouchEvent使用以下代码进行滑动手势
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
// TODO Auto-generated method stub
boolean result = super.dispatchTouchEvent(ev);
// disable the gesture in this screen because we have
return gDetector.onTouchEvent(ev);
}
我希望使用SignatureView来捕获客户签名 https://github.com/CoatedMoose/CustomViews/blob/master/library/src/com/coatedmoose/customviews/SignatureView.java 所以我想在用户点击SignatureView时禁用滑动手势,我该怎么做?
答案 0 :(得分:2)
我不熟悉SignatureView
项目,但对于常规GesturDetector
,您可以像以下内容一样将事件传递给GestureDetector
,只有当它在它的“目标”View
:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
boolean result = super.dispatchTouchEvent(ev);
if (inSignatureArea(ev)) {
return gDetector.onTouchEvent(ev);
}
else {
return result;
}
}
public boolean inSignatureArea(MotionEvent ev) {
float eventX = ev.getX();
float eventY = ev.getY();
return (eventX > signatureArea.getX() && eventX < (signatureArea.getX() + signatureArea.getWidth())) ;
// && (same thing for Y and height);
}
您应该能够根据自己的需要进行调整。