在自定义ViewGroup的子类控件时(即LinearLayout,RelativeLayout...)想在里面触发onTouchEvent里的MOVE事件时,由于该事件会被它的子控件捕获。所以我们应在onInterceptTouchEvent拦截事件。代码如下:
@Override
public boolean onInterceptTouchEvent(MotionEvent e) {
switch (e.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
//必须要在MOVE中return才有效果,在这里return后UP事件也会被拦截
return true;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
break;
}
return super.onInterceptTouchEvent(e);
}