美文网首页
NestScrollView嵌套RecyclerView无法复用

NestScrollView嵌套RecyclerView无法复用

作者: 炸山哥 | 来源:发表于2023-11-04 15:33 被阅读0次
  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;

相关文章

网友评论

      本文标题:NestScrollView嵌套RecyclerView无法复用

      本文链接:https://www.haomeiwen.com/subject/iimuvltx.html