解决ScrollView嵌套RecyclerView时滑动出现的卡顿

来源:互联网 发布:c语言求阶乘 编辑:程序博客网 时间:2024/04/29 02:07

转自(略有修改):ScrollView嵌套RecyclerView时滑动出现的卡顿 - 樱蝴蝶的日志 - 网易博客 http://zhanglu0574.blog.163.com/blog/static/113651073201641853532259/
现象:
一个界面有多个RecyclerView以及其他一些内容,这时要上下滚动就会使用外面嵌套一个ScrollView,虽然我没有遇到像ScrollView嵌套ListView时那样只显示部分,剩余不显示,可能是因为我内容少吧,所以没有遇到这个,但是在滑动的时候如果是在RecyclerView上滑动,这时会出现只滑动动该RecyclerView的内容上就会停止,而如果是在其他内容上滑动时就可以很顺畅的滑下去,因此就会感觉到卡顿的样子。
解决:禁止RecyclerView的滑动。
最简单方便的就是直接

linearLayoutManager = new LinearLayoutManager(context) {    @Override    public boolean canScrollVertically() {        return false;    }};

另外就是重写LayoutManager,以Grid模式来说:

public class MyGridLayoutManager extends GridLayoutManager {    public MyGridLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {        super(context, attrs, defStyleAttr, defStyleRes);    }    public MyGridLayoutManager(Context context, int spanCount) {        super(context, spanCount);    }    public MyGridLayoutManager(Context context, int spanCount, int orientation, boolean reverseLayout) {        super(context, spanCount, orientation, reverseLayout);    }    @Override    public boolean canScrollVertically() {        return false;    }}
0 0
原创粉丝点击