For future reference, the much simpler solution that I am using for the drawing area within the ScrollView is to use requestDisallowInterceptTouchEvent to tell the parents and the chain not to interfere with the touches.
for example, in the drop-down view, where the parent in this case is LinearLayout inside the ScrollView , but can also be nested in other components:
@Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { this.parent.requestDisallowInterceptTouchEvent(true); // etc... } else if(event.getAction() == MotionEvent.ACTION_MOVE) { // etc... } else if (event.getAction() == MotionEvent.ACTION_UP) { this.parent.requestDisallowInterceptTouchEvent(false); // etc... } return true; }
source share