@Override   
public boolean dispatchTouchEvent(MotionEvent ev) {  
    // why this code can be executed.
    getParent().requestDisallowInterceptTouchEvent(true); 
    return super.dispatchTouchEvent(ev);   
} 
getParent().requestDisallowInterceptTouchEvent(true) tell parent don't intercept touch event. but if parent already intercept touch event, the event can't pass to child view, and child view how to execute getParent().requestDisallowInterceptTouchEvent(true) ?
 
     
    