有一种方法可以阻止父层的View截获touch事件,就是调用 getParent().requestDisallowInterceptTouchEvent(true);方法。
一旦底层View收到touch的 action后调用这个方法那么父层View就不会再调用onInterceptTouchEvent了,也无法截获以后的action
在ViewPagerIndicator项目中找到TabPageIndicator该类,添加如下代码
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
//true 不许父元素拦截当前控件的的事件,否则反之
getParent().requestDisallowInterceptTouchEvent(true);
return super.dispatchTouchEvent(ev);
}
android 事件反拦截
在需要的地方调用
getParent().requestDisallowInterceptTouchEvent(true); 如
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
getParent().requestDisallowInterceptTouchEvent(true);
return super.dispatchTouchEvent(ev);
}