最近做的项目中对于列表展示类的布局我们使用了RecyclerView,这自然避免不了使用Adapter了,可适配器中往往包含着许多重复并且无关紧要的代码,这个时候我们便想到了代码的优化,从而引入了这个开源框架 BaseRecyclerViewAdapterHelper(https://github.com/CymChad/BaseRecyclerViewAdapterHelper),截至到今天(2017/2/28)star人数5600+,可想而知该框架的作用以及其不凡的影响力!
是的,刚引入项目中的时候甚至直到整个项目的完成,该框架都在每一个适配器中发挥着重要作用,正如它所描述的那样,它能做什么?和原始的adapter相比,能减少70%的代码量,不仅如此,它也封装了许许多多我们所需要的一些方法,如果是使用原生的适配器去写,一个简单的item点击事件都是需要我们去通过接口回调的形式来实现,更不用说去控制头、尾、空布局了。而集成该框架后,我们只需要通过简单的几句addOnClickListener(ResID)就能实现,可想而知该框架的强大之处,而这仅仅冰山一角,具体使用方法及其功能移步https://github.com/CymChad/BaseRecyclerViewAdapterHelper/wiki。
也可能是项目期间加班比较忙,没有时间好好去看看它底层的实现方式,导致在今晚写Demo的时候不去集成它的时候一个listView的adapter写了我将近一个小时(15分钟足矣写完),好在最终通过调试找到了问题原因,在listView中convertView复用的时候我们需要考虑去给item重新赋值,否则会导致该item布局会继续显示上次的数据,这应该算是每一个开发者都遇到过的困惑吧,至少我已经不是第一二三。。次遇到了,可能也是我比较笨,嘿嘿。
有时候,我们真的该好好想想每一个想见恨晚的方法、工具类它们的实现原理了,不然万一哪天你找不到了那个方法、类,你还不写代码了不成?是吧?(二师兄所言极是)虽然我们都是站在前人的肩膀上写东西,大部分坑都有人已经踩过了并留下了经验、解决方法,可我们依然需要去好好思考,这样才不至于当哪天需要我们独挡一面的时候心有余而力不足!
好啦,第一次写这么长一段话,都从28号写到了1号,真的是辛苦宝宝了,整理整理,sleep!