DiffResult调度导致“检测到不一致”。无效的视图持有人适配器positionViewHolder'错误有时
问题描述:
我有一个RxJava2 Observable,它需要两个列表,计算它们的差异结果并将此数据发送到适配器。主线程上的适配器调度更新。DiffResult调度导致“检测到不一致”。无效的视图持有人适配器positionViewHolder'错误有时
适配器调度的代码:
public void dispatchStreams(List<StreamV3> streams, @Nullable DiffUtil.DiffResult diffResult) {
if (streams == null) return;
streamsList.clear();
streamsList.addAll(streams);
if (diffResult != null) {
diffResult.dispatchUpdatesTo(this);
}
}
我有“不一致检测。无效的视图持有人适配器positionViewHolder有时在某些设备上的错误。我无法弄清楚我的代码有什么问题。 Min SDK 21,Target SDK 26,RecyclerView版本是26.0.0。我知道扩展LinearLayoutManager的解决方法,并默默地捕获这个错误,但这是不好的解决方案,我相信这里应该是更好的解决方案。
任何人都可以提供任何帮助吗?
是检测到不一致。无效的视图持有人适配器positionViewHolder'? – Blackbelt
@Blackbelt,是 –
我可以告诉你我们如何解决这个问题,但我们不知道为什么。这是很多的试验和错误 – Blackbelt