scrollview嵌套listview产生的滑动冲突(recyclerview)

匿名 (未验证) 提交于 2019-12-02 23:26:52

外部拦截法:

 public class ListScrollView extends ScrollView {      private XListView xListView;      public ListScrollView(Context context) {         super(context);     }      public ListScrollView(Context context, AttributeSet attrs) {         super(context, attrs);     }      public XListView getxListView() {         return xListView;     }      public void setxListView(XListView xListView) {         this.xListView = xListView;     }      /**      * 覆写onInterceptTouchEvent方法,点击操作发生在ListView的区域的时候,      * 返回false让ScrollView的onTouchEvent接收不到MotionEvent,而是把Event传到下一级的控件中      */     @Override     public boolean onInterceptTouchEvent(MotionEvent ev) {         if (xListView != null && checkArea(xListView, ev)) {             return false;         }         return super.onInterceptTouchEvent(ev);     }      /**      *  测试view是否在点击范围内      * @param v      * @return      */     private boolean checkArea(View v, MotionEvent event){         float x = event.getRawX();         float y = event.getRawY();         int[] locate = new int[2];         v.getLocationOnScreen(locate);         int l = locate[0];         int r = l + v.getWidth();         int t = locate[1];         int b = t + v.getHeight();         if (l < x && x < r && t < y && y < b) {             return true;         }         return false;     }     } 

使用时,要在listscrollview中设置xlistview:

 listSV.setListView(lv);

scrollview嵌套listview产生的滑动冲突(recyclerview)

文章来源: https://blog.csdn.net/songzi1228/article/details/88861766
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!