当你的 adapter 添加了headview,adapter.notifyDataSetChanged()就会报Called attach on a child which is not detached
解决办法是如果你添加了headView,那么notifyItemChanges 的index+1
所以adapter.notifyDataSetChanged()替换成adapter.getAdapter().notifyItemChanged(index + 1)
代码如下
var layoutManager = recyclerView.layoutManager as LinearLayoutManager;
var mLastVisibleItemPosition = layoutManager.findLastVisibleItemPosition();
var mFirstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
for(index in mFirstVisibleItemPosition..mLastVisibleItemPosition){
if(headView!=null) {
adapter.getAdapter().notifyItemChanged(index + 1);
}else{
adapter.getAdapter().notifyItemChanged(index);
}
}