Android滑动事件与RecyclerView的item点击事件的冲突

问题:RecyclerView列表显示,我滑动这个列表的item时,会触发item的点击事件
解决:调用RecyclerView的addOnItemTouchListener()监听,根据滑动的距离判断是否相应点击事件
 recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
           public float y1,y2,x2,x1;

           @Override
           public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
               if (e.getAction() == MotionEvent.ACTION_DOWN) {
                   x1 = e.getX();
                   y1 = e.getY();
               }
               if (e.getAction() == MotionEvent.ACTION_UP) {
                   x2 = e.getX();
                   y2 = e.getY();
                   if (Math.abs(x1 - x2) < 6) {
                       return false;// 距离较小,当作click事件来处理
                   }
                   if(Math.abs(x1 - x2) >60){  // 真正的onTouch事件
                       return true;
                   }
               }
              return false;

           }

           @Override
           public void onTouchEvent(RecyclerView rv, MotionEvent e) {

           }

           @Override
           public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

           }
       });
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容