美文网首页android适配
Android 解决recylerview和viewPager

Android 解决recylerview和viewPager

作者: 谁动了我的代码QAQ | 来源:发表于2018-08-11 17:28 被阅读0次

    工作产品中有一个功能是viewpager中嵌套着recylerviewrecylerview是横向滑动的,因此造成一个现象就是当滑动recylerview的时候,可能会造成viewpager的滑动,造成十分不好的用户体验。

    拿到这个问题的时候,想到的肯定就是事件的分发,思路很简单,当点击到recylerview的时候,则确定将事件消费掉,同时告诉父控件(也就是viewPager),不要消费这个事件了,完全有recyleview来处理就好了。ok,思路有了就代码实现了,其实只需要重写一下dispatchTouchEvent这个方法就好了。

    public class MyRecyclerView extends RecyclerView {
    
       public MyRecyclerView(Context context) {
               super(context);
        }
    
       public MyRecyclerView(Context context, @Nullable AttributeSet attrs)
       {
              super(context, attrs);
        }
    
       public MyRecyclerView(Context context, @Nullable AttributeSet attrs, int defStyle) {
             super(context, attrs, defStyle);
         }
    
       @Override
        public boolean dispatchTouchEvent(MotionEvent ev) {
              //解决recyclerView和viewPager的滑动影响
              //当滑动recyclerView时,告知父控件不要拦截事件,交给子view处理
              getParent().requestDisallowInterceptTouchEvent(true);
             return super.dispatchTouchEvent(ev);
         }
    }

    相关文章

      网友评论

        本文标题:Android 解决recylerview和viewPager

        本文链接:https://www.haomeiwen.com/subject/zdvdbftx.html