继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

以ViewPager为Header的ListView滑动冲突解决方案

不负相思意
关注TA
已关注
手记 136
粉丝 12
获赞 69

开发中,遇到一个需求:轮播图要求随ListView一起滑动。

     实现方式:将轮播图(ViewPager)以Header的形式添加到ListView


     那么问题是,轮播图也即ViewPager的滑动略有卡顿,且ViewPager在水平距离上产生位移时,会触发ListView的下拉刷新。


     解决办法:http://www.bkjia.com/Androidjc/959052.html?qqdrsign=072f8


     这里记录下以上博主的方法


     自定义ViewPager继承自support.v4.ViewPager,在ViewPager中对事件进行拦截分配。 在自定义ViewPager中添加代码


     @Override

public boolean dispatchTouchEvent(MotionEvent ev) {

// TODO Auto-generated method stub

if (parent != null) {

parent.requestDisallowInterceptTouchEvent(true);

}

return super.dispatchTouchEvent(ev);

}


@Override

public boolean onInterceptTouchEvent(MotionEvent arg0) {

// TODO Auto-generated method stub

if (parent != null) {

parent.requestDisallowInterceptTouchEvent(true);

}

return super.onInterceptTouchEvent(arg0);

}


@Override

public boolean onTouchEvent(MotionEvent arg0) {

// TODO Auto-generated method stub

if (parent != null) {

parent.requestDisallowInterceptTouchEvent(true);

}

return super.onTouchEvent(arg0);


  还是在自定义ViewPager中,顺便添加变量以及方法,用于得到ViewPager的Parent容器。

  private ViewGroup parent;

  public void setNestedParent(ViewGroup p) {

this.parent = p;

   }


   以上方法调用,在ViewPager控件初始化的时候,调用

   mViewPager.setNestedParent((ViewGroup) mViewPager.getParent());

原文链接:http://www.apkbus.com/blog-192385-59710.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP