ViewPager嵌套时内部的ViewPager不能滑动
2014-11-26 10:16
183 查看
本文解决ViewPager嵌套时内部的ViewPager不能滑动的问题
如果你的界面是由ViewPager和Fragment写的
在子页面中仍然需要ViewPager的情况,子ViewPager是不能滑动的,滑动的时候默认滑动的是父VIewPager
这时候我们只需要在重写子ViewPager和在子ViewPager的touch事件中调用getParent().requestDisallowInterceptTouchEvent(true);通知父控件不进行touch拦截就可以了
如下:
如果你的界面是由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个时 // 通知其父控件,现在进行的是本控件的操作,不允许拦截 getParent().requestDisallowInterceptTouchEvent(true); } break; case MotionEvent.ACTION_MOVE: if (this.getChildCount() > 1) { // 有内容,多于1个时 // 通知其父控件,现在进行的是本控件的操作,不允许拦截 getParent().requestDisallowInterceptTouchEvent(true); } break; case MotionEvent.ACTION_UP: // 在up时判断是否按下和松手的坐标为一个点 if (PointF.length(evt.getX() - downPoint.x, evt.getY() - downPoint.y) < (float) 5.0) { onSingleTouch(this); return true; } break; } return super.onTouchEvent(evt); } public void onSingleTouch(View v) { if (onSingleTouchListener != null) { onSingleTouchListener.onSingleTouch(v); } } public interface OnSingleTouchListener { public void onSingleTouch(View v); } public void setOnSingleTouchListener( OnSingleTouchListener onSingleTouchListener) { this.onSingleTouchListener = onSingleTouchListener; } }
相关文章推荐
- ViewPager嵌套时内部的ViewPager不能滑动
- 解决ViewPager嵌套后子ViewPager不能滑动的问题
- ViewPager的双层嵌套时影响内部ViewPager的触摸滑动问题
- ScrollView嵌套ViewPager空白,上下或者左右不能滑动问题
- ViewPager嵌套ViewPager不能响应滑动事件解决方法
- 解决ScrollView嵌套ViewPager,导致ViewPager不能滑动的问题
- 解决ViewPager嵌套后子ViewPager不能滑动问题
- 解决内部ViewPager不能向左滑动的bug
- ViewPager嵌套ViewPager不能响应滑动事件解决方法
- 对于ViewPager中嵌套的Viewpager不能响应滑动事件的解决方法
- ViewPager嵌套ViewPager 滑动冲突
- listview嵌套viewpager 滑动冲突问题
- android listview左右滑动分页(viewpager嵌套listview进行分页),焦点图带圆焦点
- 解决ListView嵌套ViewPager滑动不了的问题
- 使用viewpager嵌套实现上下左右滑动切换图片
- 被嵌套的ViewPager滑动失效解决
- 在ScrollView中嵌套ViewPager,ViewPager不能显示的解决办法
- 解决ScrollView嵌套ViewPager出现的滑动冲突问题
- 使用viewpager嵌套实现上下左右滑动切换图片(IOS双向滚动翻页效果相同)
- ViewPager相互嵌套,里层ViewPager无法滑动