场景: viewpager嵌套侧滑删除的listview(如SwipeMenuListView),当在滑动在SwipeMenuListView的viewpager页时,两者滑动冲突
解决:自定义listview类继承SwipeMenuListView,重写touch的各个事件,拦截父类点击事件
publicclassMySwipMenuLvextendsSwipeMenuListView{privateViewGroupparent;publicMySwipMenuLv(Contextcontext,AttributeSetattrs){super(context,attrs);}publicvoidsetNestedpParent(ViewGroupparent){this.parent=parent;}@OverridepublicbooleandispatchTouchEvent(MotionEventev){if(parent!=null){parent.requestDisallowInterceptTouchEvent(true);}returnsuper.dispatchTouchEvent(ev);}@OverridepublicbooleanonInterceptTouchEvent(MotionEventarg0){if(parent!=null){parent.requestDisallowInterceptTouchEvent(true);}returnsuper.onInterceptTouchEvent(arg0);}@OverridepublicbooleanonTouchEvent(MotionEventarg0){if(parent!=null){parent.requestDisallowInterceptTouchEvent(true);}returnsuper.onTouchEvent(arg0);}}
代码中:
通过setNestedpParent()方法传入MySwipMenuLv的父类对象(也就是viewpager)