0
我知道視圖可以決定在傳遞ACTION_DOWN
事件時通過在onTouchEvent
中返回true來處理MotionEvent自身。如果他們返回true
,那麼他們將收到所有後續的MOVE/UP/CANCEL
事件。這工作正常。競爭onTouchEvent處理程序?
我想要做的是將此決定推遲到ACTION_MOVE
事件。我有一個包含一個ViewGroup一個孩子,如果不同水平或垂直滾動,我想的ViewGroup或兒童負責處理MotionEvents
喜歡的東西:
public class MyViewGroup extends ViewGroup{
public boolean onTouchEvent(MotionEvent event) {
int action = event.getActionMasked();
if (action == MotionEvent.ACTION_DOWN) {
mDownX = event.getX();
} else if (action == MotionEvent.ACTION_MOVE) {
if (Math.abs(event.getX() - mDownX) > THRESHOLD_X) {
// I want all the future events to be forwarded to this ViewGroup
return true;
}
}
return false;
}
}
public class MyChild extend View {
public boolean onTouchEvent(MotionEvent event) {
int action = event.getActionMasked();
if (action == MotionEvent.ACTION_DOWN) {
mDownY = event.getY();
} else if (action == MotionEvent.ACTION_MOVE) {
if (Math.abs(event.getY() - mDownY) > THRESHOLD_Y) {
// I want all the future events to be forwarded to this View
return true;
}
}
return false;
}
}
這可能嗎?目前,只有ViewGroup會收到MOVE/UP/CANCEL
。我想是因爲它沒有找到一個合適的孩子來轉發視圖。