列表项目正在使用多个viewtype替换为recyclerview上的标题

时间:2017-02-14 06:41:05

标签: android android-recyclerview

我正在使用,,我希望在我使用多个viewType创建的Recyclerview项目上方添加一个Header文本。结果如下图所示。工作正常但似乎标题RecyclerView替换了我的示例文本列表项中的第一项。应该是样本文本1,直到列表中显示10。因此,下面的输出图像中应该显示结果I'm header

Multiple View Types

以下是Sample Text 1

的代码
MyAdapter.class

2 个答案:

答案 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) );
   }
}