Was ist die SortedList & lt; T & gt; Arbeiten mit RecyclerView.Adapter?
Android-Support-Bibliothek 22.1 wurde gestern veröffentlicht. Viele neue Funktionen wurden Hinzugefügt, in die v4 support library und v7, unter denen android.support.v7.util.SortedList<T>
zieht meine Aufmerksamkeit auf sich.
Es wird erzählt, dass SortedList
ist eine neue Datenstruktur, arbeitet mit RecyclerView.Adapter
ist, hat das Element Hinzugefügt/gelöscht/verschoben/geändert Animationen zur Verfügung gestellt von RecyclerView
. Es klingt wie ein List<T>
im ListView
aber scheint weiter Fortgeschritten und mächtig.
Also, was ist der Unterschied zwischen SortedList<T>
und List<T>
? Wie kann ich es effizient? Was die Durchsetzung der SortedList<T>
über List<T>
wenn es so ist? Kann jemand post einige Proben davon?
Irgendwelche Tipps oder codes, werden geschätzt. Vielen Dank im Voraus.
InformationsquelleAutor der Frage SilentKnight | 2015-04-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
SortedList
übernimmt die Kommunikation zu den Recycler-adapter überCallback
.Einen Unterschied zwischen
SortedList
undList
ist zu sehen in deraddAll
Helfer-Methode im Beispiel unten.Sagen, ich habe 10 zwischengespeicherten Elemente zu laden, sofort, wenn meine recycler Liste wird gefüllt. Zur gleichen Zeit, ich meine Abfrage Netzwerk für die 10 gleichen Elementen, weil Sie sich geändert haben, seit ich zwischengespeichert. Ich kann rufen Sie die gleiche
addAll
Methode undSortedList
ersetzen die cachedItems mit fetchedItems unter der Haube (immer das zuletzt hinzugefügte Element).In regelmäßigen
List
hätte ich die Duplikate alle meine items (Liste Größe von 20). MitSortedList
seine ersetzt die Elemente, die identisch sind mit dem Rückruf istareItemsTheSame
.Wenn die fetchedItems Hinzugefügt werden,
onChange
wird nur aufgerufen werden, wenn eine oder mehrere derPage
's Titel geändert. Sie können anpassen, wasSortedList
sucht in der Callback -areContentsTheSame
.Probe
Können Sie eine get auf Ihrem adapter für Ihr
SortedList
aber ich habe einfach entschieden, um Hilfsmethoden, um meinen adapter.Adapter-Klasse:
Seite Klasse:
Viewholder xml:
Viewholder Klasse:
InformationsquelleAutor der Antwort Amozoss
SortedList
ist inv7 support library
.Hier unten ist ein Beispiel der Verwendung von
SortedList
ich denke, es ist, was Sie wollen, werfen Sie einen Blick auf Sie es und genießen Sie!InformationsquelleAutor der Antwort SilentKnight
Es ist ein Beispiel SortedListActivity in der support-library-source-repository, welches veranschaulicht, wie SortedList und SortedListAdapterCallback innerhalb einer RecyclerView.- Adapter. Aus der Wurzel des SDK, mit der support-library installiert, es sollte auf
extras/android/support/samples/Support7Demos/src/com/example/android/supportv7/util/SortedListActivity.java
(auch auf github).Die Existenz dieser bestimmten Muster ist erwähnt genau einmal in der Google-Dokumentation, an der Unterseite der einen Seite der Umgang mit einem anderen Thema, so dass ich nicht die Schuld Sie für es nicht zu finden.
InformationsquelleAutor der Antwort moskvax
Über
SortedList
Umsetzung, es wird unterstützt durch ein array von<T>
mit einem Standard-min-Kapazität von 10 Elementen. Sobald das array voll ist, wird das array verkleinert, umsize() + 10
Den source-code verfügbar ist, hier
Vom Dokumentation
Bezug zu der Leistung, die Sie auch Hinzugefügt Der SortedList.BatchedCallback zur Durchführung mehrere operation auf einmal und nicht ein zu der Zeit
InformationsquelleAutor der Antwort Axxiss