I have a custom ViewGroup with an override of onInterceptTouchEvent(). It receives ACTION_DOWN but never receives ACTION_MOVE. It is my understanding that, unless it returns "true", it should receive all MotionEvents.
The ViewGroup contains two views, an ImageView and a GridLayout.
My intercept code is:
@Override
public boolean onInterceptTouchEvent(MotionEvent ev)
{
final int action = ev.getAction();
switch (action & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_DOWN:
logD ("DDV Intercept DOWN");
break;
case MotionEvent.ACTION_POINTER_DOWN:
logD ("DDV Intercept P DOWN"); // logD: shell around Log.d()
break;
case MotionEvent.ACTION_MOVE:
logD ("DDV Intercept MOVE");
break;
case MotionEvent.ACTION_UP:
logD ("DDV Intercept UP");
break;
case MotionEvent.ACTION_POINTER_UP:
logD ("DDV Intercept P UP " + ev.getActionIndex());
break;
case MotionEvent.ACTION_CANCEL:
logD ("DDV Intercept CANCEL");
break;
default:
logD ("DDV Intercept " + (action & MotionEvent.ACTION_MASK));
}
return false;
}
I also have code for onTouch that returns false except for one case in ACTION_MOVE; however, it's called only for ACTION_DOWN is called; thus it only return false.