android viewpager嵌套侧滑删除listview冲突问题
场景: viewpager嵌套侧滑删除的listview(如SwipeMenuListView),当在滑动在SwipeMenuListView的viewpager页时,两者滑动冲突
解决:自定义listview类继承SwipeMenuListView,重写touch的各个事件,拦截父类点击事件
public class MySwipMenuLv extends SwipeMenuListView{ private ViewGroup parent; public MySwipMenuLv(Context context, AttributeSet attrs) { super(context, attrs); } public void setNestedpParent(ViewGroup parent) { this.parent = parent; } @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); } }
代码中:
通过setNestedpParent()方法传入MySwipMenuLv的父类对象(也就是viewpager)