我有一个习惯View
,我正在压倒一切onTouchEvent(MotionEvent)
。我已经在这个视图中实现了捏缩放,如Make Sense of Multitouch一文中所述。我遇到的问题是该视图最终用于Gallery
需要触摸事件进行滚动的情况。我添加了逻辑来检测我的视图何时完全向右/向左滚动并返回 false,但我认为Gallery
需要完整的MotionEvent
动作才能滚动。这是我返回false的地方:
case MotionEvent.ACTION_MOVE: {
final int pointerIndex = event.findPointerIndex( getActivePointerId() );
final float x = event.getX( pointerIndex );
final float y = event.getY( pointerIndex );
// Only move if the ScaleGestureDetector isn't processing a gesture.
if ( !getScaleDetector().isInProgress() ) {
if ( isDetectMovementX() ) {
final float dx = x - getLastTouchX();
setPosX( getPosX() + dx );
}
if ( isDetectMovementY() ) {
final float dy = y - getLastTouchY();
setPosY( getPosY() + dy );
}
invalidate();
}
setLastTouchX( x );
setLastTouchY( y );
if ( isAtXBound() ) {
return false;
}
break;
}
View
缩放和平移,但从不Gallery
滚动。我想知道是否有一种方法可以将初始动作MotionEvent
作为“新鲜”重新发送为. 谢谢!MotionEvent
ACTION_DOWN