RecyclerView的自定义项目

时间:2016-05-23 01:26:47

标签: android android-recyclerview

我想按字母顺序对RecyclerView的项目进行排序:

enter image description here

所以有人可以让我知道如何让行有 SECTION 比另一个小。我们会在课程Decoration中自定义吗?

2 个答案:

答案 0 :(得分:2)

使用getItemViewType确定一个位置应该保持什么类型的视图。

public int getItemViewType(final int position) {
    if (dataset.get(position).isHeader()) {
        return TYPE_HEADER;
    } else {
        return TYPE_ITEM;
    }
}

然后在onCreateViewHolder中创建正确的ViewHolder。

public RecyclerView.ViewHolder onCreateViewHolder(final ViewGroup parent, final int viewType) {
    if (viewType == TYPE_HEADER) {
        return HeaderViewHolder.create(parent);
    }
    else {
        return ItemViewHolder.create(parent);
    }
}

确保在onBindViewHolder中绑定正确的数据。

public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
    if (getItemViewType(position) == TYPE_HEADER) {
        ((HeaderViewHolder) holder).bind(/* your heading data for this position */);
    } else {
        ((ItemViewHolder) holder).bind(/* your item data for this position */);
    }
}

如果不清楚 - 创建ViewHolders以扩展单独的布局。您的标题视图持有者将使用不同的背景等扩展更薄的布局。

答案 1 :(得分:1)

你应该使用这个库,

https://github.com/timehop/sticky-headers-recyclerview

我希望你从这个链接中得到你想要的东西。