ChildHelper在前面的《RecyclerView的ChildHelper》文章中,我们介绍了ChildHelper类的实现,其中提到用来保存所有子视图状态的Bucket类,这篇文章,我们就来学习一下Bucket类是如何通过位操作,来保存状态的。
RecyclerView中会展示若干的items,RecyclerView也提供了对子视图的删除等操作,我们以remove操作为例。代码如下:
public void removeViewAt(int index) {
final View child = getChildAt(index);
if (child != null) {
mChildHelper.removeViewAt(index);
}
}
通常,我们删除一个item的时候,会从adapter的数据源中去删除,然后调用adapter的notifyDataSetChanged去更新RecyclerView的显示。
其实RecyclerView本身是可以移除子视图的,这个移除只是隐藏,而不是删除数据源中的数据。所以会通过ChildHe