android recyclerview onBindViewHolder

android recyclerview onBindViewHolder

问题描述:

android recyclerview onBindViewHolder
在使用各类刷新函数来添加数据时,正常现象应该只调用显示着的item的onBindViewHolder函数。
而我在刷新时,所有的item都会被调用onBindViewHolder函数(包括不显示的item)
因此导致画面的大量运算而产生卡顿。
求解这是为什么?
ps:对recyclerview的使用应该没有问题,就是纳闷怎么会出现这种状况。

经过4天的折磨终于知道原因了(知道产生这种的现象的原因了,虽然还不是根本原因)
是因为我对recyclerview控件的大小进行了一些适配大小的工作(比如LinearLayout的weight属性,google的百分比控件等),而导致这个问题。
现在使用java代码来固定大小就可以避免这个问题。
这应该是recyclerview的底层实现产生的问题吧,没有时间对源码深入研究。
如果有知道的大牛,求解惑。
也谢谢,回答这个问题的朋友!

你可以看看内部源码,就知道刷新的设计原理了。