2012-05-21 3 views
7

Die Google Play-Anwendung präsentiert die Top-Listen verschiedener Kategorien auf GridView-ähnliche Weise (screenshot). Ich bin mir ziemlich sicher, dass es kein Standard-GridView ist, denn wenn ich den ganzen Weg nach unten scrolle, zeigt es ein bildschirmweites "Laden" -Objekt, was meines Wissens nach nicht mit Standard-GridViews möglich ist.Wie zeigt die ViewGroup in der Google Play App die Toplisten der Anwendung an?

Kann ich den Code für diese ViewGroup irgendwo finden? Wenn nicht, was wäre der beste Weg, um eine solche ViewGroup zu implementieren? Ich habe darüber nachgedacht, dies mit ListView zu handhaben, aber es würde einen recht unsauberen Adapter erfordern, der mehrere Listenelemente in eine einzelne Zeile einfügt, entsprechend der verfügbaren Bildschirmbreite.

Antwort

17

Um meine eigene Frage zu beantworten:

Ich zerlegte die Google Play-App und festgestellt, dass sie einfach Listview verwenden hier mit einem BucketListAdapter. Dieser Adapter präsentiert die Listenelemente auf eine GridView-ähnliche Art und teilt sie in Spalten auf. Auf diese Weise könnten sie auch Listenfußzeilen und Kopfzeilen verwenden.

Ich habe meine eigene Implementierung von diesem gerollt, wenn jemand interessiert ist, kann es hier gefunden werden: https://github.com/rzsombor/bucket-list-adapter. Es läuft aber immer noch in Arbeit Zeug.

+0

Danke für den Quellcode für Bucket-Liste-Adapter zu öffnen. Es macht wirklich Dinge erledigt und sehr nützlich. Aber es gibt Optimierungsprobleme. Der Adapter verwendet keine Wiederverwendung von Ansichten. Es verwendet auch nicht das viewHolder-Muster. Es ist also sehr wahrscheinlich, dass die App nicht mehr genügend Speicher hat, wenn die Anzahl der Elemente in der Liste hoch wird. Außerdem ist das Rendern der Objekte sehr langsam und das Scrollen ist nicht sehr flüssig. Wir müssen daran arbeiten, um es zu optimieren. –

Verwandte Themen