从RecyclerView中删除与List无关的视图

时间:2017-03-19 12:54:41

标签: java android view android-recyclerview

我有RecyclerViewAdapter有两种商品类型。 ItemViewHolder中的所有itemView {1}}和ArrayList中的一个headerView。我可以从HeaderViewHolder中删除项目,然后使用ArrayList以从notifyItemRemoved(position)中删除itemView。但是,如何删除与RecyclerView无关的headerView?

以下是ArrayList的一些代码:

RecyclerViewAdapter

1 个答案:

答案 0 :(得分:1)

HeaderView 列表的一部分,至少从适配器的角度来看。

您说./myCProgram file.txt < input.txt 表示列表中的第一项是标题视图,并告诉适配器您的列表中包含isPositionHeader(pos -> pos == 0)个项目。 mValues.size() + 1以弥补首先出现的标题。

那你怎么能再次删除这个视图呢?

如果你想打开/关闭它......你需要能够在状态之间切换的东西。为什么不使用+1?您可以使用一些boolean字段来指示标头是否显示。

这会对您的代码产生什么影响?嗯......和上面相同的代码......

isShowingHeader

并为您的列表大小...

// if we show the header, the 0 position is the header
isPositionHeader(pos -> isShowingHeader && pos == 0)

显示/隐藏标题时,您现在只需更新// list is longer by 1 when showing a header mValues.size() + (isShowingHeader ? 1 : 0) 并调用isShowingHeader即可通知适配器您更改的值。