出现问题的具体情况:点击左滑时,一开始view 点击事件响应,随后ViewPager被触发,页面也切换。而自定义的view 是要左右滑动的,这里发生了冲突。
事件分发基本过程就是 dispatch,intercept,on,也就是分发、拦截,响应,由activity 至 layout 再到view。
发生冲突的原因是viewpager在分发事件给view前,判断事件是滑动事件,就把事件拦截了。所以,自定义的view需要先获取parentview,调用 其requestDisallowInterceptTouchEvent(),就可以关闭viewpager的事件的拦截。