RecyclerView-数据域的操作方法(第3篇)
2016-08-16 本文已影响181人
子木小先生
简述
这一篇简单阐述下针对数据域部分的数据操作。
对应的Adapter是BaseAdapter,继承自HeaderFooterAdapter
。
数据的处理方法都声明在CRUD
里面,大都是一些简单的增删改查,BaseAdapter
负责具体的实现。这部分比较简单没什么深挖的。
接下来介绍一下整个扩展库里用的比较多的ViewHolder的处理。
final
public class BaseViewHolder extends RecyclerView.ViewHolder implements ChainSetter<BaseViewHolder>
从声明中已经能看出来该类的独立、囊括、易操作的特点。
这个类的设计是这么考虑的:
a. 客户端没必要构建那么多类型的viewHolder,将尽可能常用的操作都封装在这一个里面就够了,所以定义成了final的
b. 链式操作,从ChainSetter的泛型中就可以看出来,省去了很多不必要的代码
可以看到这样也是有个弊端的,毕竟不能保证所有的操作都能支持,所以假设如果有一种操作在这里不被支持的话,那么在提供的java public void convert(BaseViewHolder holder, int position)
方法中用最原始的方法处理就可以了,只是效率上有一点点影响。当然在后续的版本中可以考虑可被扩展。