我们在ViewHolder中缓存视图,以避免太多findViewById()
次调用。同样,是否可以在RecyclerView Adapter中缓存数据?
我听说在ViewHolder中缓存了视图,但是在使用Adapter时不确定是否缓存了数据?如果RecyclerView Adapter不提供数据缓存,如果发生过多次数据源调用,应用程序仍然可能崩溃?
感谢是否有人对此有所了解?
答案 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将用于列表中的多个位置。