Viewpager 主要通过拦截触摸事件的方式来解决滑动冲突,当 Viewpager 检测到用户在水平方向滑动时,会拦截并消费掉 MotionEvent,从而不会传递到子 View 进行处理。这样就可以确保用户在 Viewpager 上的滑动不会与子 View 冲突。
另外,也可以通过设置 Viewpager 的滑动方向来避免滑动冲突,例如设置为只能水平滑动或者只能垂直滑动。
如果遇到特殊情况下无法通过以上方法解决滑动冲突,还可以通过重写 onInterceptTouchEvent() 和 onTouchEvent() 方法来自定义处理滑动冲突的逻辑。