3

Snap 1:13 Ansichten, wenn Aktivität beginnt. http://imgur.com/0MmZjg0 Snap 2:14 Aufrufe 1 oben + 1 unten. http://imgur.com/oPJAonm Ich bin ein bisschen neu zu Android und versuchen, den RecyclerView zu verstehen. Was ein Recycler tut, ist, wenn eine Ansicht während des Scrollens die Aktivität verlässt, ruft sie den onBindViewHolder auf, der die neuen Daten an die bestehende Ansicht bindet, die gerade aus dem Aktivitätsrahmen herausgegangen ist. Aber während wir die Aktivität scrollen, kommt eine Zeit, in der wir immer noch die Ansicht sehen können, die aus dem Rahmen der Aktivität herauskommt (Crime # 8 in Snap 2) und auch die neue Ansicht sehen kann, die mit dem erstellt wird Viewholder des Crime # 8 in diesem Fall (dh Crime # 21 in Snap 2). So bin ich verwirrt, wenn der vorherige viewholder (Verbrechen # 8) nicht wiederverwendet worden ist, aber wie wird der neue viewholder (Verbrechen # 21) verursacht?Wie erhält RecyclerView beim Scrollen eine zusätzliche Ansicht vom Adapter?

+0

https: // www. youtube.com/watch?v=LqBlYJTfLP4 Sehen Sie sich das Video vollständig an. Es ist eine ziemlich gute Erklärung – gaara87

+0

Es nicht wieder Ansichtshalterungen. IT verwendet Ansichten erneut. Und es schafft neue, wenn es nötig ist, um sich selbst zu füllen. Wenn Ihre Recycler-Ansicht also zu Beginn über zwei Ansichten verfügt und beim Scrollen Platz für 3 hat, wird für die dritte Ansicht eine neue Ansicht (mit zugeordnetem Ansichtshalter) erstellt. –

Antwort

1

Es löscht nicht die alten, bis es wirklich nicht mehr braucht

Verwenden Sie die getItem() ovverriden Methode zu verstehen, wenn ein neues Objekt erstellt wird :)

+0

Okay, ich bekomme es, dass es nicht den Adapter bittet, die neuen Informationen einzufügen, bis es den vorherigen ViewHolder nicht mehr benötigt. Das heißt, dass wir den Adapter bitten, bei jedem Scrollen einen zusätzlichen ViewHolder zu erstellen. –

+0

Art von. Nehmen wir an, Sie scrollen nach unten und Sie können die Slots 3-9 sehen ... Es wird (ich weiß nicht genau, wie viele es laden wird), aber es wird, sagen wir mal, die Slots 10-12 in den Speicher laden, aber es wird Slots 0-2 behalten, bis es Speicher frei machen muss. –

Verwandte Themen