最近优化了项目里的列表展示,顺便对RecyclerView的使用做了重新的封装,目的是当列表的需求比较复杂的时候,依然能够保持逻辑的清晰和解耦,同时通过封装来使复杂列表的性能得到一定的保证。
当然如果是非常简单的列表的话,其实Android原生的RecyclerView加上Adapter就已经比较便捷了,没有必要去做过度的封装了。
项目GitHub地址: https://github.com/zhengcx/InstantRecyclerView
每一个对项目的重构或者重新封装都是出于对现状的不满,那么我们就从这个封装项目解决了哪些问题来展开这篇博文吧。
1.解决重复的全局刷新
需要注意一下你的项目里对列表的使用,特别是加载更多时是否都是重复的全局刷新,这对复杂列表的性能影响较大,你需要考虑每次刷新不去刷新那些不需要刷新的item,一个是对性能会有提高,另一个页面上用户的体验也会好很多,本项目提供了全局刷新和增量刷新的相关方法,保证加载更多或者操作单个item时只局部刷新。
2.解决header/Footer的增删效率
RecyclerView本身并没有提供像ListView那样便捷的添加header/footer的方法,所以需要我们自己去实现。
网上主要有两种:一种是采用wrap的方式使header、footer和普通item区别开,而另一种方式使把header、footer也当做是一种itemType来做。
这里我们采用了第二种方式&#x