我有RecyclerViewAdapter
有两种商品类型。 ItemViewHolder
中的所有itemView {1}}和ArrayList
中的一个headerView。我可以从HeaderViewHolder
中删除项目,然后使用ArrayList
以从notifyItemRemoved(position)
中删除itemView。但是,如何删除与RecyclerView
无关的headerView?
以下是ArrayList
的一些代码:
RecyclerViewAdapter
答案 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
即可通知适配器您更改的值。