ViewPager中加入ScrollView,ScrollView无法上下滚动,这是什么问题?
ViewPager本身控制着Touch事件的下发操作,每个Touch事件的下发都遵从从上至下层层递归,ScrollView真正获得Move事件前,Move事件必须经过ViewPager的onInterceptTouchEvent和dispatchTouchEvent事件,前者执行拦截操作后者执行下发操作。ViewPager便是在onInterceptTouchEvent中对Move事件进行了过滤,当移动距离超过一定值时,它会拦截掉Move事件,阻止ScrollView继续处理Touch事件的权利,转而让自身的onTouch事件处理。
在viewpager的dispatch和intercept事件里判断手指滑动,如果是竖着滑动,就把事件继续传递下去,而不是截断。