你还在为recycleview移除了listview的addheaderview方法而发愁??recycleview虽然是listview和gridview的升级版,使用更加方便灵活。内存方面优化也是非常突出的。但是丢弃了很多以前我们在listview里面使用非常顺手并且常用的方法。开始遇到时,真的很想吐槽一下,但是研究一下,原来google把这些方法都留给我们自己去写了,在recycleview的adapter里面可以根据不同的viewtype添加不同的布局,也是非常灵活的。但还是不爽,为什么要自己写??后来发现一个很好的框架,实现添加headerview !!!分分钟搞定,话不多说了,直接上代码
这里顺便提供一个万能adapter:
package com.yjtc.cbg.addheaderndfootrecycleview;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.AbstractCollection;
import java.util.Iterator;
import java.util.List;
/**
* Created by chenboge on 16/2/10.
*/
public abstract class BaseAdapter<T, H extends BaseViewHolder> extends RecyclerView.Adapter<BaseViewHolder> {
protected Context mContext;
protected List<T> mDatas;
private LayoutInflater mInflater;
private onItemClickListener monItemClickListener;
public int itemViewID;
public BaseAdapter(Context mContext, List<T> mDatas, int itemViewID) {
this.mContext = mContext;
this.mDatas = mDatas;
this.itemViewID = itemViewID;
mInflater = LayoutInflater.from(mContext);
}
public T getItem(int position) {
return mDatas.get(position);
}
public interface onItemClickListener {
void onClick(View view, int position);
}
public void setOnItemClickListener(onItemClickListener itemClickListener) {
this.monItemClickListener = itemClickListener;
}
@Override
public BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View mView = null;
mView = mInflater.inflate(itemViewID, null, false);