可以在Android RecyclerView Adapter中缓存数据吗?

时间:2017-09-14 17:02:29

标签: android android-recyclerview android-adapter android-viewholder

我们在ViewHolder中缓存视图,以避免太多findViewById()次调用。同样,是否可以在RecyclerView Adapter中缓存数据? 我听说在ViewHolder中缓存了视图,但是在使用Adapter时不确定是否缓存了数据?如果RecyclerView Adapter不提供数据缓存,如果发生过多次数据源调用,应用程序仍然可能崩溃? 感谢是否有人对此有所了解?

2 个答案:

答案 0 :(得分:0)

如果您的意思是图像感知,您可以使用像Picasso这样的库并执行like this并缓存图像。如果您的意思是缓存在数据意识中,您的列表或数组已作为缓存工作。
只有ListView中的可见视图才有数据 Rest is Imaginary 仅数据驻留在List或数组中!

答案 1 :(得分:-2)

否你不能

在Android RecyclerView中,仅创建可见的视图数。它由onCreateViewHolder()方法处理。

当用户滚动列表时,通过用新数据填充可以重新使用从可见区域出来的视图。此操作在onBindViewHolder(ViewHolder viewholder, int position)方法中执行。

当视图被回收用于新数据时,没有必要在视图中缓存数据。

顺便说一句,如果你看onCreateViewHolder(ViewGroup parent, int viewType),你会注意到没有位置参数。这意味着您甚至无法链接列表项数据,因为ViewHolder将用于列表中的多个位置。