转自:http://blog.youkuaiyun.com/sam_zhang1984/article/details/8079955
问题:
由于界面实现的需要,在ViewPager中嵌套ViewFlipper,这应该也是比较常见的界面,但实现过程中遇到了一个问题:这ViewPager和ViewFlipper手势冲突了,当在ViewFlipper中滑动要切换时,同时触发了ViewPager,使得ViewPager也跟着一起滑动。
解决:
在网上找了一大圈,有各种解决方法,不过大部分是曲线救国,在EOE看到一帖子,终于找到了解决的办法:
在子View中执行getParent().requestDisallowInterceptTouchEvent(true),在本例子中即在ViewFlipper执行这个方法,我个人是在dispatchTouchEvent中执行,即:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
getParent().requestDisallowInterceptTouchEvent(true);
super.dispatchTouchEvent(ev);
commOnTouchEvent(ev); //进行子View手势的相应操作
return true;
}
参考上述博客内容,重写子viewpager,并重载其 dispatchTouchEvent()方法,返回true即解决。