当前位置:网站首页>RecyclerView设置缓存大小

RecyclerView设置缓存大小

2022-08-10 22:16:00 今人不见古时月,今月曾经照古人

前两天遇到问题,RecyclerView使用GridView布局,滑出界面两行再划回来,只有第一行只有前两个grid位置的控件还保留原来功能,后面的都失活了,觉得是控件的问题,然后最终解决,以下是帮助了我的文章,收藏!有时间详细学习!

段落1

熟悉RecyclerView 缓存的同学应该知道(后面在也会介绍RecyclerView缓存机制),当RecyclerView中的itemView 滑出屏幕后会缓存在mCacheView 中(默认缓存最大数是2),因此当滑出屏幕超过2后,再滑回来,原来的位置信息都会被重置。

记录、恢复RecyclerView 滚动偏移位置

段落2

滑动场景中的复用会用到这里的机制。mCachedViews 的大小默认为2。遍历 mCachedViews,找到 position 一致的 ViewHolder,之前说过,mCachedViews 里存放的 ViewHolder 的数据信息都保存着,所以 mCachedViews 可以理解成,只有原来的卡位可以重新复用这个 ViewHolder,新位置的卡位无法从 mCachedViews 里拿 ViewHolder出来用。

RecyclerView回收和复用机制分析(这篇讲的非常好,完美的解决了我的困惑)

段落3

你可以调用

recyclerView.setItemViewCacheSize(int);

这个 api,去调整 RecyclerView 的复用逻辑和方式来解决 onBindViewHolder 没有调用的这个问题。

RecyclerView 复用错乱通用解法

其他:

RecyclerView 源码分析

 

转载于:RecyclerView设置缓存大小_本然233的博客-CSDN博客_recyclerview设置缓存数量 

原网站

版权声明
本文为[今人不见古时月,今月曾经照古人]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_42602900/article/details/126248745