通过重写RecyclerView.Adapter来实现添加头脚布局的功能
-----具体使用
1 创建adapter继承DBaseRecyclerViewAdapter,实现onCreateViewHolder1()方法,绑定布局
2 创建viewholder继承DBaseRecyclerViewHolder,实现setData()方法,设置页面数据
3 绑定自定义的adapter与DRecyclerViewAdapter
4 添加脚布局
5 设置adapter到recyclerView
---伪代码
MyAdapter myAdapter = new MyAdapter(this, arrayList);
DRecyclerViewAdapter recyclerViewAdapter = new DRecyclerViewAdapter(myAdapter);
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
gridLayoutManager.setSpanSizeLookup(new DSpanSizeLookup(recyclerViewAdapter, gridLayoutManager.getSpanCount() - 2));
recyclerView.setLayoutManager(gridLayoutManager);
((DefaultItemAnimator) recyclerView.getItemAnimator()).setSupportsChangeAnimations(false);
recyclerViewAdapter.addFootView(view1);
recyclerView.setAdapter(recyclerViewAdapter);
---继承自RecyclerView.Adapter的类
public abstract class DBaseRecyclerViewAdapter<T> extends RecyclerView.Adapter<DBaseRecyclerViewHolder> {
private List<T> mDatas;
private Context mContext;
/**
* 默认点击监听事件
*/
public interface OnClickItemListener {
void onClick(int poisiton);
}
OnClickItemListener onClickItemListsner;
public void setOnClickItemListsner(OnClickItemListener onClickItemListsner) {
this.onClickItemListsner = onClickItemListsner;
}
public OnClickItemListener getOnClickItemListsner() {
return onClickItemListsner;
}
private DRecyclerViewAdapter mDRecyclerViewAdapter;
public DRecyclerViewAdapter getmDRecyclerViewAdapter() {
return mDRecyclerViewAdapter;
}
public void setDRecyclerViewAdapter(DRecyclerViewAdapter mDRecyclerViewAdapter) {
this.mDRecyclerViewAdapter = mDRecyclerViewAdapter;
}
private