问题1. Inconsistency detected##
Inconsistency detected. Invalid item position 8(offset:8).state:25
清空数据时,但没有notifyAll,这个时候新增数据时,报;
问题2,条目点击 layoutPosition 返回 -1
// 条目变动时操作,
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// holder.getLayoutPosition() 在 条目变动时操作,极有有可能 return -1
onItemClickListener.onItemClick(holder.itemView, holder.getLayoutPosition(), data.get(holder.getLayoutPosition()));
}
});
这里强制 加入 try ... catch 来解决异常
问题3 not a real child
// 加载数据时,过快拉 recyclerview
java.lang.IllegalStateException: Added View has RecyclerView as parent but view is not a real child. Unfiltered index:0
解决方式:
adapter 添加数据的时候,改成:
/**
* 添加数据
*
* @param items
*/
public void addItems(List<T> items) {
if (items != null && items.size() > 0) {
int oldSize = data.size();
if (oldSize > 0) {
data.addAll(items);
notifyItemRangeInserted(oldSize, items.size());
} else {
replaceData(items);
}
}
}
网友评论