FormLayoutManager -- 修改复用缓存的最大数量

本文探讨了在使用RecyclerView时,快速滑动可能导致的View复用问题。作者通过实例解释了RecyclerView的mRecyclerPool缓存机制,并指出在特定场景下,如表格布局,可能需要自定义LayoutManager来调整缓存的最大数量,以提高滑动性能。FormLayoutManager的最新版本提供了setRecycleMaxSize方法,允许开发者针对viewType调整缓存大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FormLayoutManager首页,里面有github地址

前言

由一位网友提出的问题。他发现滑动表格的时候,adapter的onCreateViewHolder方法还是进了,那就是view还是继续在创建,样子就感觉表格每个格子根本没复用。先建议去看看一位大神讲解怎么封装自定义LayoutManager,他里面也说了一下RecyclerView的缓存机制。https://blog.youkuaiyun.com/harvic880925/article/details/84866486

 

讲解

我简单说一下这现象。假如你滑的足够快,不管是我的表格还是普通LinearLayoutManager的列表,只要你滑的很快,列表突然要新增的item超过了RecyclerView的mRecyclerPool(一个缓存viewholder的池,最大数量是5),它就会进createViewHolder的方法。但一般普通的列表很少会出现这种请求,因为最大数量是5差不多足够了,除非你的列表的item高度很小,一滑就更新超过5个。
但你也许也会方向我那个表格的即使慢慢滑,也会出现复用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值