Ich habe meinen eigenen Adapter für eine RecyclerView
mit Subheadern implementiert. Das Problem ist, dass die Header-Ansichten manchmal nicht an neue Werte aus dem Dataset gebunden sind, weil die Methode onBindViewHolder(...)
nicht aufgerufen wird. Ich habe dieses Verhalten über logcat verfolgt: Es fehlt buchstäblich die Positionen für einige der Header. Warum das?Unter welchen Umständen wird onBindViewHolder() in RecyclerView.Adapter nicht aufgerufen?
0
A
Antwort
0
Den Fehler in meinem Code gefunden! gab keine eindeutigen IDs für die Header zurück. Das hat das Problem behoben.
0
Stellen Sie sicher, dass die Methode getItemCount()
0 nicht zurückgibt, da dies möglicherweise dazu führen kann, dass onBindViewHolder()
nicht aufgerufen wird.
+0
Meine Unterordner und tatsächlichen Elemente sind Objekte desselben Typs. Ich lege sie alle in ein Dataset-Array und treffe verbindliche Entscheidungen auf Basis der Werte, die sie haben. 'getItemCount()' gibt simpply 'dataset.getSize() 'zurück. 'Dataset' ist immer NICHT leer. – Sevastyan
Verwandte Themen
- 1. RecyclerView.Adapter wird nicht überbrückt onBindViewHolder
- 2. Unter welchen Umständen werden C++ - Destruktoren nicht aufgerufen?
- 3. RecyclerView.Adapter onBindViewHolder() bekommt falsche Position
- 4. Unter welchen Umständen wird Java field.setAccessible (true) fehlschlagen?
- 5. Unter welchen Umständen sind atomare Eigenschaften nützlich?
- 6. Unter welchen Umständen kann ConcurrentBag.TryTake() fehlschlagen?
- 7. Unter welchen Umständen ruft TypeBuilder.CreateType AppDomain.OnTypeResolveEvent auf?
- 8. Unter welchen Umständen gibt TextToSpeech.isSpeaking() true zurück?
- 9. Unter welchen Umständen wirft System.Collections.ArrayList.Add IndexOutOfRangeException?
- 10. Unter welchen Umständen würden Sie wollen, Rails nicht zu MYSQL
- 11. Unter welchen Umständen sind dynamische Sprachen nicht geeignet?
- 12. Unter welchen Umständen können Elternfelder nicht vererbt werden?
- 13. Unter welchen Umständen werden SQL Server-Trigger ausgeführt?
- 14. Unter welchen Umständen löscht eine App die Firebase-Instanz-ID?
- 15. Unter welchen Umständen kann Viewstate nicht beibehalten werden?
- 16. Unter welchen Umständen wiederholt IE8 Wörter (Text) in Multilinien-Textfeldern?
- 17. Erzwingen RecyclerView.Adapter, um onBindViewHolder() für alle Elemente aufzurufen
- 18. Unter welchen Umständen verursacht JSONSerialization.data (withJSONObject :) einen abfangbaren Fehler?
- 19. Unter welchen Umständen könnte std :: unique_ptr :: operator [] werfen?
- 20. Unter welchen Umständen müssen wir GC.Collect zweimal anrufen
- 21. Unter welchen Umständen verhält sich std :: unordered_map sehr langsam?
- 22. Unter welchen Umständen blockiert ein Telegramm einen Bot?
- 23. Unter welchen Umständen teilen sich gleiche Zeichenketten die gleiche Referenz?
- 24. Unter welchen Umständen wirft C# ASP.NET HttpContext.Current.Session, IndexOutOfRangeException?
- 25. Unter welchen Umständen würde diese Ressource leckt? 4
- 26. Unter welchen Umständen wird fseek/ftell oder fstat nicht die Größe einer Datei erhalten?
- 27. Unter welchen Umständen würde [[NSScreen mainScreen] visibleFrame] null zurückgeben?
- 28. Werden virtuelle Mitglieder über Reflektion (unter normalen Umständen) aufgerufen?
- 29. Unter welchen Umständen kann Internet Explorer ein ActiveX-Steuerelement nicht ordnungsgemäß entladen?
- 30. RecyclerView onBindViewHolder wird nur aufgerufen, wenn sich getItemViewType ändert
Wenn Sie null Elemente zurückgeben. – Enzokie
Es ist schwer, irgendetwas ohne Code zu sagen. Sie sollten die Implementierung Ihres Adapters angeben. Und beantworten Sie Ihre Frage: Ich habe nicht angerufen, wenn das Element auf dem Bildschirm sichtbar ist und notifyDataSetChanged nicht aufgerufen wurde. –
Ich habe die Anzahl der Elemente im Datensatz überprüft, die ich zurückgebe - keine Fehler. – Sevastyan