答案 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
我希望你从这个链接中得到你想要的东西。