我找不到任何使用ViewCacheExtension的示例或场景。该文件说:如何用RecyclerView实现ViewCacheExtension?
当getViewForPosition(INT)被调用时,连接废料 和一级缓存回收站检查,以找到匹配的视图。如果它不能找到一个合适的 查看,回收站将检查 RecyclerView.RecycledViewPool
前致电 getViewForPositionAndType(回收站,INT,INT)
我有几个相关查询:
- 我明白所附废料是不需要反弹的意见清单。但什么是“一级缓存”?
- 的getViewForPositionAndType()方法文档说:
这种方法不应该创建一个新的视图
我还能如何返回一个看法?我能想到的唯一方法是通过缓存ViewCacheExtension中的报废视图。当ViewCacheExtension已满时,请尝试将数据移动到RecycledViewPool。有人可以证实我是否正确?有4级缓存(废料,“第一级”,ViewCacheExtension,RecycledViewPool)有什么意义?
即使在查看RecyclerView源代码后,我也找不到正在实现的ViewCacheExtensions的引用。
谢谢。我也采取了类似的方法,但如果data.getCount()很大,我不确定内存的副作用。 – SlowAndSteady
RecyclerView中默认的'ItemViewCacheSize'为2。这用于在用户滚动时保留项目。如果您将其与数据大小相等,那么RecyclerView将无法完成其工作。我不会回收任何东西。你将失去大部分的性能收益。 – tasomaniac