2 qq 15530467 qq_15530467 于 2017.01.03 21:26 提问

android recyclerview onBindViewHolder

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

3个回答

qq_15530467
qq_15530467   2017.01.04 14:48
已采纳

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

devmiao
devmiao   Ds   Rxr 2017.01.03 23:11
Mr_dsw
Mr_dsw   Ds   Rxr 2017.01.04 12:45

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!