场景: viewpager嵌套侧滑删除的listview(如SwipeMenuListView),当在滑动在SwipeMenuListView的viewpager页时,两者滑动冲突
成都创新互联公司是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:成都响应式网站建设公司、高端网站设计、成都全网营销。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。成都做网站、网站建设、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。
解决:自定义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)