ScrollView嵌套RecycleView之后 recycleView惯性消失

来源:互联网 发布:免费棋牌app源码 编辑:程序博客网 时间:2024/06/05 22:44

在项目中遇到recycleView滑动非常卡顿,惯性消失,查看XML发现和scrollView嵌套了,
scrollView 套了LinearLayout 然后套了N个元素,其中就有recycleView.
初步怀疑,两者冲突了,应该是move事件,经调查前辈们已经解决。
现贴出带码:

自定义scrollView,然后在套用recycleView。

/** * 屏蔽 滑动事件 *  */class MyScrollview extends ScrollView {    private int downX;    private int downY;    private int mTouchSlop;    public MyScrollview(Context context) {        super(context);        mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();    }    public MyScrollview(Context context, AttributeSet attrs) {        super(context, attrs);        mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();    }    public MyScrollview(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();    }    @Override    public boolean onInterceptTouchEvent(MotionEvent e) {        int action = e.getAction();        switch (action) {            case MotionEvent.ACTION_DOWN:                downX = (int) e.getRawX();                downY = (int) e.getRawY();                break;            case MotionEvent.ACTION_MOVE:                int moveY = (int) e.getRawY();                if (Math.abs(moveY - downY) > mTouchSlop) {                    return true;                }        }        return super.onInterceptTouchEvent(e);    }}

其实还有另外一个办法,就是把recyleView之外的部分作为header或者footer或者type转换为recyleView的节点元素,从而不再使用ScrollView。这个再次我就不再贴出代码~github中很多recycleView的demo~推荐一个

compile ‘com.jude:easyrecyclerview:4.4.0’
地址 链接地址
https://github.com/Jude95/EasyRecyclerView

原创粉丝点击