ViewPager嵌套事件冲突问题(dispatchTouchEvent)

来源:互联网 发布:网络中沉默的螺旋案例 编辑:程序博客网 时间:2024/06/06 07:47

在做一个新闻客户端的时候用到了几个ViewPager嵌套,这时候在滑动的时候出现了父类ViewPager拦截了子ViewPager的情况,解决方法如下:

自定义一个ViewPager继承ViewPager,重写它的dispatchTouchEvent方法,代码:

public class HorizontalViewPage extends ViewPager {    public HorizontalViewPage(Context context) {        super(context);    }    public HorizontalViewPage(Context context, AttributeSet attrs) {        super(context, attrs);    }    @Override    public boolean dispatchTouchEvent(MotionEvent ev) {        getParent().requestDisallowInterceptTouchEvent(true);        return super.dispatchTouchEvent(ev);    }}

dispatchTouchEvent方法中使用requestDisallowInterceptTouchevent(true) 设为true 时,父类不再拦截子类的事件
注意:自定义的这个ViewPager作为子类view使用,再调用requestDisallowInterceptTouchEvent时注意要用getParent();

0 0
原创粉丝点击