原理:
访问数据后,对每一个数据都添加标识区分布局是 标题+内容 ,还是只有 内容,加载的item与上一个item的标识比较,如果一样就是内容布局,不一样就是 标题+内容布局
前提
集合中的数据必须是按一定规则排列好的 比如时间
下面是适配器中的主要代码
“`
/**
* 历史浏览记录
* Created by menglinghua on 2016/5/4.
*/
public class BrowserAdapter extends RecyclerView.Adapter BrowserAdapter.MyViewHoler> {
private List mDatas;
private Context context;
private int content_type = 1;
private int title_type = 2;
public BrowserAdapter(Context context, List<BrowserBean> mDatas) {
this.context = context;
this.mDatas = mDatas;
}
@Override
public void onBindViewHolder(final BrowserAdapter.MyViewHoler holder, int position) {
BrowserBean browserBean = mDatas.get(position);
if (holder.getItemViewType() == content_type) {
holder.tv_browseritem_header.setVisibility(View.GONE);
} else if (holder.getItemViewType() == title_type) {
holder.tv_browseritem_header.setVisibility(View.VISIBLE);
holder.tv_browseritem_header.setText(browserBean.getTitle());
}
holder.tv_browseritem_name.setText(browserBean.getGoodsname());
holder.tv_browseritem_price.setText("¥"+browserBean.getGoodsprice());
holder.iv_browseritem.setImageURI(Uri.parse(browserBean.getImgurl() + ""));
}
@Override
public int getItemViewType(int position) {
BrowserBean oldC = null;
if (position > 0) {
oldC = mDatas.get(position - 1);
}
BrowserBean shopC = mDatas.get(position);
if (oldC != null) {
if (shopC.getTitle().equals(oldC.getTitle())) {
return content_type;
} else {
return title_type;
}
} else {
return title_type;
}
}
“`