RxJava2 Observableに2つのリストをとり、それらのdiff結果を計算してこのデータをアダプターに送信します。アダプターはメインスレッドで更新をディスパッチします。アダプタに派遣のDiffResultディスパッチが「不一致が検出されました。無効なビューホルダーアダプターpositionViewHolder 'error sometimes
コード:
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 'エラーが発生することがあります。私のコードで何が間違っているのか分かりません。 最小SDK 21、対象SDK 26、RecyclerViewのバージョンは26.0.0です。私はLinearLayoutManagerを拡張し、このエラーを静かにキャッチすることで回避策を知っていますが、これは悪い解決策です。
誰でも助けてください。
は「不一致が検出されました。ビューホルダーアダプターpositionViewHolder'が無効ですか? – Blackbelt
@Blackbelt、Yes –
私はそれを修正する方法を教えてもらえますが、その理由を確かめることはできません。それは多くの試行錯誤でした – Blackbelt