美文网首页
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