Android RecyclerView多个ItemType插入问题

时间:2015-07-23 05:16:18

标签: android android-recyclerview

我正在使用22.2.1 RecyclerView库。

我有一个RecyclerView.Adapter,显示由ArrayList支持的项目的垂直列表。

在某些情况下(例如,如果X == true),它还会在位置0显示不同的项目。getItemCount如下所示:

return (X ? 0 : 1) + items.size();

当X变为真时,我呼叫notifyItemInserted(0)。之后,调用onBindViewHolder,其位置等于getItemCount,然后onBindViewHolder调用位置为0。

问题是位置1和2(items中的位置0和1)都显示items.get(1)的项目。这里要说明的是两种情况下显示的内容:

X == false

  1. 第1项
  2. 第2项
  3. 第3项
  4. X == true

    1. X
    2. 第2项
    3. 第2项
    4. 第3项
    5. 但是,如果X == true最初,那么一切都会正确显示。

      我的解决方法是:

      notifyItemInserted(0);
      notifyItemRangeChanged(1, items.size()); // workaround
      

      但我不相信我应该这样做。有人有什么想法吗?

0 个答案:

没有答案