在做一个新闻客户端的时候用到了几个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();
本文介绍了解决Android应用中ViewPager嵌套滑动冲突的方法。通过自定义ViewPager并重写dispatchTouchEvent方法,使用requestDisallowInterceptTouchEvent(true)确保父ViewPager不拦截子ViewPager的触摸事件。
2227

被折叠的 条评论
为什么被折叠?



