zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

android 事件反拦截

Android事件 拦截
2023-09-11 14:20:27 时间


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