recyclerView添加头尾布局,博客大佬们都有介绍,毕竟书上得来终觉浅,我亲自试了一下,发现不使用第三方加载头尾布局还是很简单的,不是很难,看效果
前面就是我加载简单view,下面看看完整代码
public class RcvAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private Context context; private List<String> list; //类型标识 public final int HEAD=100000; public final int FOOT=200000; public final int BODY=300000; //头布局数量和尾布局数量 private int headCount=1; private int footerCount=1; public RcvAdapter(Context context, List<String> list) { this.context = context; this.list = list; } public int getBodySize(){ return list.size(); } public boolean ishead(int postion){ return headCount!=0&&postion<headCount; } public boolean isfoot(int postion){ return footerCount!=0&&(postion>=(getBodySize()+headCount)); } @Override public int getItemViewType(int position) { if(ishead(position)) { return HEAD; } else if (isfoot(position)){ return FOOT; } else{ return BODY; } } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch (viewType){ case HEAD: return new HeadViewHodler(View.inflate(context,R.layout.head,null)); case FOOT: return new FooterViewHodler(View.inflate(context,R.layout.foot,null)); case BODY: return new BodyViewHodler(View.inflate(context,R.layout.body,null)); default: return null; } } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { if(holder instanceof HeadViewHodler) { } else if(holder instanceof FooterViewHodler) {} else if(holder instanceof BodyViewHodler){ ((BodyViewHodler)holder).tv_title.setText(list.get(position-headCount)); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(context, "position:" + (position-headCount), Toast.LENGTH_SHORT).show(); } }); } } @Override public int getItemCount() { return getBodySize()+headCount+footerCount; } class HeadViewHodler extends RecyclerView.ViewHolder{ public HeadViewHodler(View itemView) { super(itemView); } } class FooterViewHodler extends RecyclerView.ViewHolder{ public FooterViewHodler(View itemView) { super(itemView); } } class BodyViewHodler extends RecyclerView.ViewHolder{ private final TextView tv_title; public BodyViewHodler(View itemView) { super(itemView); tv_title = itemView.findViewById(R.id.tv_body); } } }代码就到这里了,最好练习一遍,不要眼高手低