Sichten in einer Listenansicht recyceln, lohnt sich das?

8

Wenn Sie den Basisadapter in einer Android-Listenansicht überschreiben, müssen Sie diese Methode public View getView(int position, View convertView, ViewGroup parent) implementieren. Die ConvertView-Ansicht ist die Ansicht, die beim Scrollen zuvor von der Liste verschoben wurde, und sie wird verwendet, um diese Ansicht wiederzuverwenden, anstatt eine neue Ansicht zu erstellen.

Meine Frage ist, ist es wirklich notwendig, die Ansicht wiederzuverwenden? Ich kann es wiederverwenden, wenn nur ein Teil der Daten geändert wird. Aber ist der Aufwand, um eine Sicht zu schaffen, wirklich so wichtig? Jedes Tutorial zur Verwendung von Listenansichten, die ich gesehen habe, sagt Ihnen, die Ansicht zu recyceln, sogar in trivial einfachen Ansichten wie einer Textansicht.

Ich denke, meine Frage ist, warum hat Google beschlossen, dies zum Standardverhalten der Methode getView zu machen?

    
Falmarri 28.09.2010, 22:59
quelle

2 Antworten

13

Ein paar Gründe, Ansichten zu recyceln:

  • Die Erstellung von Objekten ist relativ teuer. Jedes zusätzliche Objekt, das erstellt wird, muss vom Garbage Collection-System verarbeitet werden und erhöht zumindest vorübergehend Ihren Speicherbedarf
  • Dies ist für komplexere Ansichten wichtiger, aber das Aufblähen und Auslegen der Ansichtsobjekte kann teuer sein. In den meisten Fällen nehmen Sie nur geringfügige Änderungen an der Ansicht in getView vor, die sich nicht auf das Layout auswirken (z. B. Text festlegen), sodass Sie möglicherweise den Layout-Overhead vermeiden können.
  • Denken Sie daran, dass Android in einer ressourcenbeschränkten Umgebung ausgeführt wird.
  • Schließlich ist es bereits für Sie getan, und es tut nichts wirklich weh, also warum nicht benutzen?
Cheryl Simon 28.09.2010, 23:14
quelle
7

Ist es notwendig? Nur wenn Sie bei einem Nexus One zusätzliche 30-40 fps mögen. :) (Siehe Folien von Ссылка , Folien 13- 17)

Warum lässt das Gerät funktionieren, was es nicht tun muss, indem es eine signifikante Optimierung ignoriert, die zu 95% für Sie erledigt wurde?

    
adamp 29.09.2010 03:40
quelle