Ich möchte eine ListView-Stil RecyclerView mit einer Kopfzeile an der Spitze, UND ich möchte nicht die Header-Ansicht, recycelt werden, EVER.RecyclerView mit LinearLayoutManager mit Header-Ansicht, die nicht recycelt
Ich bin völlig neu zu RecyclerView
und LinearLayoutManager
aber ich denke, was ich will nicht allzu schwer LinearLayoutManager
durch die Erweiterung sein sollte.
Zusätzliche Informationen, falls erforderlich, aber ich denke, die oben genug ist:
ich bereits eine RecyclerView mit einem Kopfsicht an Position 0. Der Teil von SO Antworten mit Hilfe leicht genug war. Aber die Ansicht wird wiederverwertet, was zu vielen Problemen mit den EditText-Ansichten in der Kopfzeile führt (Fokus behalten, Fokus wiederherstellen, Caret sichtbar halten, keine seltsamen Dinge mit Auto-Correct-Funktion machen, weiterschreiben, während EditText technisch weg ist)/recycelt, usw.). Die einfache Lösung wäre also, diese Ansicht nicht zu recyceln, was meiner Meinung nach mit einem benutzerdefinierten Layout-Manager möglich ist, aber ich habe keine Ahnung, wo ich anfangen soll.
Ich kann nicht einfach die Header-Ansicht über meine Liste platzieren, weil ich möchte, dass sie mit der Liste scrollt (sie ist zu groß, um die ganze Zeit am oberen Bildschirmrand zu fixieren).
Es wäre noch einfacher, nur dieser Position einen eindeutigen Ansichtstyp zuzuweisen. Hat 'getItemViewType()' einen anderen Wert für die Position '0' von allen anderen Positionen zurückgegeben. Dann wird diese Ansicht niemals wiederverwendet, da es nichts anderes gibt, als sie zu recyceln, außer der Position "0". – CommonsWare
Ich mache das eigentlich schon, aber ich bin mir ziemlich sicher, dass es sowieso recycelt wird, obwohl ich mir nicht 100% sicher bin, wie ich das überprüfen soll. Ich weiß, dass OnBind für die Header-Ansicht erneut aufgerufen wird, jedes Mal, wenn es aus der Sicht und dann wieder zurück scrollt ... also ist das ein Grund, warum es noch recycelt wird. – eselk
Alle anderen Fehler, die ich sehe, und andere Gründe, die ich vermute, dass sie recycelt werden, ähneln denen, die Sie sehen würden, wenn Sie einen EditText mit dem Fokus haben (Tastatur öffnen, tippen) und ohne es zu entfernen zuerst etwas anderes geben Fokus. Schwer zu erklären, aber die Tastatur/das Betriebssystem ist einfach nicht glücklich, wenn das passiert. – eselk