RecyclerView 分组管理

原理
访问数据后,对每一个数据都添加标识区分布局是 标题+内容 ,还是只有 内容,加载的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 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;
    }
}

“`

你可能感兴趣的:(Android)