您的位置:首页 > 其它

解决ScrollView嵌套RecyclerView导致滑动不流畅的问题

2017-01-03 15:11 621 查看
最近做的项目中遇到了ScrollView嵌套RecyclerView,刚写完功能测试,直接卡出翔了,后来通过网上查找资料和

自己的实践,找出了两种方法解决这个问题。

首先来个最简单的方法:

recyclerView.setNestedScrollingEnabled(false);这个方法就可以解决这一问题。

既然有首先那肯定有第二种解决的办法,只不过相对于第一种方法来说就太麻烦了。

我们知道ScrollView嵌套listView或者GridView的时候需要自定义listView或者是GridView,在这儿我们也需要自定义,

但是也有区别,我们这儿不是自定义RecyclerView,而是自定义ScrollView。下面给出自定义的方法。

public class TopicScrollView extends ScrollView{

    private int downX;

    private int downY;

    private int mTouchSlop;

    public TopicScrollView(Context context) {

        super(context);

        mTouchSlop= ViewConfiguration.get(context).getScaledTouchSlop();

    }

    public TopicScrollView(Context context, AttributeSet attrs) {

        super(context, attrs);

        mTouchSlop= ViewConfiguration.get(context).getScaledTouchSlop();

    }

    public TopicScrollView(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);

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐