解决嵌套viewpager滑动冲突的解决方案

来源:互联网 发布:刷手怎么找淘宝商家 编辑:程序博客网 时间:2024/05/16 11:00

//父布局的ViewPager使用自定义的

//代码如下

public class ParentViewPager extends ViewPager{

   private int childVPHeight=0;
   public ParentViewPager(Context context) {
   super(context);
   // TODO Auto-generated constructor stub
   init(context);
   }
  
   public ParentViewPager(Context context, AttributeSet attrs) {
   super(context, attrs);
   // TODO Auto-generated constructor stub
   init(context);
   }
  
   private void init(Context context) {
   // TODO Auto-generated method stub
   // 获取屏幕宽高
   WindowManager windowManager = (WindowManager)
context.getSystemService(context.WINDOW_SERVICE);
   int disWidth = windowManager.getDefaultDisplay().getWidth();
   //根据屏幕的密度来过去dp值相应的px值
   childVPHeight=(int) (context.getResources().getDisplayMetrics().density
* disWidth + 0.5f);
   }
  
   @Override
   public boolean onInterceptTouchEvent(MotionEvent arg0) {
   // TODO Auto-generated method stub
   //触摸在子ViewPager所在的页面和子ViewPager控件高度之内时
  //返回false,此时将会将触摸的动作传给子ViewPager
   if(getCurrentItem()==1 && arg0.getY()
   return false;
   }
   return super.onInterceptTouchEvent(arg0);
   }
  }


最后在子布局中的ViewPager需要修改此方法返回值为true
requestDisallowInterceptTouchEvent()

0 0
原创粉丝点击