如何使用RecyclerView实现ViewCacheExtension?

时间:2016-07-05 02:57:29

标签: android android-recyclerview

我找不到任何使用ViewCacheExtension的示例或场景。文档说:

  

调用getViewForPosition(int)时,Recycler会检查附加的废料   和第一级缓存,以找到匹配的视图。如果找不到的话   合适的View,Recycler会打电话给   检查前getViewForPositionAndType(Recycler,int,int)   RecyclerView.RecycledViewPool

我的相关问题很少:

  1. 我了解附件中的废料是不需要反弹的一系列观点。但是什么是“第一级缓存”?
  2. getViewForPositionAndType()方法文档说:
  3.   

    此方法不应创建新视图

    我还能如何返回视图?我能想到的唯一方法是在ViewCacheExtension中缓存报废的视图。当ViewCacheExtension已满时,请尝试将数据移至RecycledViewPool。有人可以确认我是对的吗?有4级缓存(废品,“第一级”,ViewCacheExtension,RecycledViewPool)有什么意义?

    即使查看了RecyclerView源代码,我也找不到正在实现的ViewCacheExtensions的引用。

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,因为我需要缓存回收者视图项目(我正在对recyclerview中使用的视图进行充气,并且大小是可变的...因此每次都有视图通胀和突然的混蛋)

已经提供了回收站视图缓存,我猜回收器视图确实只将缓存大小设置为零

所以当我添加这一行时,缓存是成功的,而且这个混蛋只是第一次

mRecyclerView.setItemViewCacheSize(data.getCount());

但是如果用户想要仅缓存特定视图,我也会感到困惑。如果你得到了什么,请发帖

希望它有所帮助:)