记录下:
其实,是在写代码时太快,复制时没把RecyclerView嵌套进入会出现此情况
其次,在自己添加头部head时出现主体main列表不出现,而只出现头部,原因是接口拿到的数据只有1条,而在你返回的viewholder取值时应该减去头部headcount才能正确取值,不然会崩溃,造成数组越界。
关键代码
CouponEntity.InfoBeanX.InfoBean infoBean = list.get(position-headCount);
@Override public int getItemCount() { return getMainBodySize()+headCount; }
private boolean isHead(int position) { //
@Override public int getItemViewType(int position) { if (isHead(position)) { return HEAD_ITEM; } else { return MAIN_ITEM; } }
@Override public int getItemCount() { return getMainBodySize()+headCount; }
switch (viewType) { //创建不同viewholder case HEAD_ITEM: View inflate = LayoutInflater.from(Context).inflate(R.layout.mine_coupon_new_head_item, null); HeadViewHolder headViewHolder = new HeadViewHolder(inflate); return headViewHolder; case MAIN_ITEM: View inflateview = LayoutInflater.from(Context).inflate(R.layout.coupon_list_new_item, null); BodyViewHolder bodyviewholder = new BodyViewHolder(inflateview); return bodyviewholder; default: return null; }
确定是第一个postion return headCount != 0 && position < headCount; } private int getMainBodySize() { return list.size(); }