有一种方法可以阻止父层的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); }