1

Ich habe eine RxJava2 Observable, die zwei Listen nimmt, berechnen diff Ergebnis für sie und senden Sie diese Daten an den Adapter. Updates für den Adapterversand am Haupt-ThreadDiffResult Dispatching führte zu 'Inkonsistenz festgestellt. Invalid view holder adapter positionViewHolder 'Fehler manchmal

-Code in Adapter des Versands:

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); 
    } 
} 

Ich habe ‚Inkonsistenz erkannt. Ungültiger View-Halter-Adapter positionViewHolder 'Fehler manchmal auf einigen Geräten. Und ich kann nicht herausfinden, was mit meinem Code nicht stimmt. Min SDK 21, Ziel-SDK 26, RecyclerView-Version ist 26.0.0. Ich kenne Workaround mit linearenLayoutManager erweitern und stillschweigend diesen Fehler abfangen, aber das ist schlechte Lösung und ich glaube, hier sollte besser sein.

Könnte jemand bitte Hilfe zur Verfügung stellen?

+0

ist 'Inkonsistenz festgestellt. Ungültiger View-Halter-Adapter positionViewHolder? – Blackbelt

+0

@Blackbelt, Yes –

+0

Ich kann Ihnen sagen, wie wir es beheben, aber wir wissen nicht genau warum. Es war eine Menge Versuch und Irrtum – Blackbelt

Antwort

1

fand ich eine Lösung für dieses Problem in diesem answer

Es scheint, dass Ausgabe von supportsPredictiveItemAnimations Eigenschaft auf Layout-Manager verursacht wird. Wenn ich es auf false setze, passiert kein Absturz mehr.

Verwandte Themen