Android--关于ListView和ViewPager滑动冲突的处理

来源:互联网 发布:linux date修改时区 编辑:程序博客网 时间:2024/06/05 14:56

在项目中我们经常会做在listview的header添加viewpager来滚动播放(广告或者新闻等焦点图)的需求,由于viewpager的横向滑动和listview的纵向滑动会导致冲突
解决办法如下:

1,继承viewpager并且重写dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent这三个方法

2,通过set方法传入ViewPager 的parent(ViewGroup)
然后在返回super方法的之前加入如下代码:
if (parent != null) {
parent.requestDisallowInterceptTouchEvent(true);
}

@Override      public boolean dispatchTouchEvent(MotionEvent ev) {          if (parent != null) {              parent.requestDisallowInterceptTouchEvent(true);          }          return super.dispatchTouchEvent(ev);      }      @Override      public boolean onInterceptTouchEvent(MotionEvent arg0) {          if (parent != null) {              parent.requestDisallowInterceptTouchEvent(true);          }          return super.onInterceptTouchEvent(arg0);      }      @Override      public boolean onTouchEvent(MotionEvent arg0) {          if (parent != null) {              parent.requestDisallowInterceptTouchEvent(true);          }          return super.onTouchEvent(arg0);      }  
1 0
原创粉丝点击