RecyclerView加载一种Item显示,往往不能满足我们在项目中开发的需要,下面我来给大家演示一下RecyclerView如何给它添加多个布局文件
那么现在问题来了,这样实现的方式有很多种,1、通过RecyclerView中的Adapter中的getItemType();进行判断加载不的布局属于哪一种样式,
通过样式来加载,但是这儿就会写很多的代码,比如每一个viewHolder对应一种将被加载的布局,这样写起来的缺点是,加载耗时,浪费资源
今天我采用另外一种方式呈现给大家,希望给大家带来一定的帮助。详情请看代码:
public abstract class MoreHeaderRecyclerAdapter
<HeaderHolder extends RecyclerView.ViewHolder, HeaderTHolder
extends RecyclerView.ViewHolder, ItemHolder extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
public static int TYPE_HEAD = 0;//头部
public static int TYPE_HEAD_TWO = 1;
public static int TYPE_ITEM = 2;
public static int TYPE_FOOT = 3;
<HeaderHolder extends RecyclerView.ViewHolder, HeaderTHolder
extends RecyclerView.ViewHolder, ItemHolder extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
public static int TYPE_HEAD = 0;//头部
public static int TYPE_HEAD_TWO = 1;
public static int TYPE_ITEM = 2;
public static int TYPE_FOOT = 3;
public abstract HeaderHolder onCreateHeaderViewHolder(ViewGroup parent, int position);
public abstract HeaderTHolder onCreateHeaderTViewHolder(ViewGroup parent, int position);
public abstract ItemHolder onCreateItemViewHolder(ViewGroup parent, int position);
public abstract void onBindHeaderViewHolder(HeaderHolder holder, int position);
public abstract void onBindHeaderTViewHolder(HeaderTHolder holder, int position);
public abstract void onBindItemHolderViewHolder(ItemHolder holder, int position);
//第三部分和第二部分的接口回调函数
public interface DetalisCallBack {
void getDetalisData(int index, int position);