我正在使用,
,我希望在我使用多个viewType创建的Recyclerview项目上方添加一个Header文本。结果如下图所示。工作正常但似乎标题RecyclerView
替换了我的示例文本列表项中的第一项。应该是样本文本1,直到列表中显示10。因此,下面的输出图像中应该显示结果I'm header
。
以下是Sample Text 1
MyAdapter.class
答案 0 :(得分:1)
在适配器
中使用以下代码public MyAdapter (Header head, List<Sample> list) {
header = head;
sampleList= list;
sampleList.add(0, new Sample()) // added dummy element in 0th position
}
由于第0个位置用于设置标题。 Recycler视图不提供我们可以管理多种视图类型的列表的任何方法。 希望这些可以帮助你。
答案 1 :(得分:1)
使用position-1而不是position,因为当position = 0时,holder将是HeaderHolder的实例,而position是&gt; 0,持有者将是ItemHolder的实例,因此您正在跳过列表的0位置。
使用以下代码:
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
if(holder instanceof HeaderHolder) {
HeaderHolder VHheader = (HeaderHolder)holder;
VHheader.txtTitle.setText(header.getHeader());
} else if(holder instanceof ItemHolder) {
((ItemHolder) holder).sample.setText("Sample Text "+ (position-1) );
}
}