NestScrollView嵌套RecyclerView无法复用的问题

  1. 列表卡顿原因分析 :NestScrollView嵌套RecyclerView,破坏了RecyclerView的复用机制。

NestScrollView在measureChildWithMargins中将传送给子View的MeasuerSpec置为0(UNSPECIFIED),如下图:


image.png

所以在RecyclerView 中收到的heightSpec为0;

image.png

这就导致往下的skipMeasure为false,然后每次添加数据都会重新measure,而且会把RecycleView的复用机制,滚动出去的Item不会被回收缓存,这就造成了Item越多,measure过程越久而导致的卡顿甚至ANR;

image.png

解决方案:1.尽量不用NestScrollView嵌套无限列表;(数据少的可以用)

2.可以用RecyclerView添加header、foot的方式来减少嵌套结构

3.一定要嵌套滑动可以用ScrollView;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容