谷歌不建议使用ScrollView嵌套RecyclerView,但是有时候会有这种情况。每当遇到这种情况就导致RecyclerView滑动很不流畅。解决方法如下:
recyclerView.setLayoutManager(new GridLayoutManager(mContext, 1) {
@Override
public boolean canScrollVertically() {
return false;
}
});
坑一:
我一直用以上方法,直到有一天,我数据差不多有200个,就加载很慢,要等个1.2秒才能加载出来,我就蒙了,于是看别人写的很快,我把代码复制到我这里还是慢,但是运行别人代码就是加载快 哼,于是我就怀疑布局,我把Scrollview去掉果然快了好多。那既要Recyclerview又要用ScrollView,怎么办?用NestedScrollView来代替ScrollView.
然后给Recyclerview添加属性:recyclerview.setNestedScrollingEnabled(false);
坑二:
用ScrollView嵌套Recyclerview,我删除一条数据刷全部:adapter.notifyDataSetChanged();就很慢,然后用想到
只删除单个:
adapter.removeData(position);
adapter.notifyItemRemoved(position);
adapter.notifyItemRangeChanged(position,netSerialList.size());
这是发现删除底部的数据,数据是删除了,但是它的位置还在就留了很多空白,也是嵌套造成的,ScrollView无法计算高度
从热爱ScrollView到放弃踩了3个坑