本文解决ViewPager嵌套时内部的ViewPager不能滑动的问题
如果你的界面是由ViewPager和Fragment写的
在子页面中仍然需要ViewPager的情况,子ViewPager是不能滑动的,滑动的时候默认滑动的是父VIewPager
这时候我们只需要在重写子ViewPager和在子ViewPager的touch事件中调用getParent().requestDisallowInterceptTouchEvent(true);通知父控件不进行touch拦截就可以了
如下:
public class ChildViewPager extends ViewPager {
public ChildViewPager(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public ChildViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
PointF downPoint = new PointF();
OnSingleTouchListener onSingleTouchListener;
@Override
public boolean onTouchEvent(MotionEvent evt) {
switch (evt.getAction()) {
case MotionEvent.ACTION_DOWN:
// 记录按下时候的坐标
downPoint.x = evt.getX();
downPoint.y = evt.getY();
if (this.getChildCount() > 1) { // 有内容,多于1个时
// 通知其父控件,现在进行的是本控件的操作,不允许拦截
getP