RecyclerView滑动卡顿问题的一种解决方法

时间:2022-09-03 22:05:08
    RecyclerView是v7包的一个新控件,自推出以来广受Android程序爱好者的推崇,然而不得不说这个控件存在着一个比较严重的问题,就是滑动的时候会有不可容忍的卡顿现象出现。自发现这个问题后,我搜了许多关于RecyclerView的文章,但极少数提到这个问题,也并没有提到这个问题产生的原因以及解决方法。后来,我到*里找了找,虽然提及这个问题的帖子不多,但还是找到了问题的原因:因为ViewHolder这个类里面的onCreateViewHolder方法和onBindViewHolder方法对时间非常敏感,需要在sub-millisecond times访问完,一切的读IO操作和network操作,还有类似的decode bitmap操作都比较耗时。所以不适宜在这两个方法里面执行这些操作。
    一个解决方法是,可以将这些耗时的操作放到recyclerview.setAdapter(adapter)之前运行,运行完后再将需要的参数传入Adapter里,此处重写一个adapter类继承Adapter就可以了。解决后运行,滑动恢复了流畅。。