首先,RecyclerView 功能虽然强大但是没有像ListView的addHaderView()或者addFooterView之类的方法,但是我们实际开发中可能需要这么去做,必须我们自己去实现,为了给RecyclerView添加header 或者footer 我们今天来分析ListView是如何实现此功能的。
一、我们直接来看ListView.addHeaderView()方法,重点就是我们的adapter.
public void addHeaderView(View v, Object data, boolean isSelectable) {
//可以看到ListView把我们的HeaderView封装成了对象FixedViewInfo 存在了集合当中
//private ArrayList<FixedViewInfo> mHeaderViewInfos = Lists.newArrayList();
//private ArrayList<FixedViewInfo> mFooterViewInfos = Lists.newArrayList();
//说明可以添加多个headerView 和 footerView
//
final FixedViewInfo info = new FixedViewInfo();
info.view = v;
info.data = data;
info.isSelectable = isSelectable;
mHeaderViewInfos.add(info);
mAreAllItemsSelectable &= isSelectable;
// W