Antwort

17

Das ist eine schwierige Frage zu beantworten. Vor allem: Denken Sie an die RecyclerView als Nachfolger der AdapterViews, die mit vielen nützlichen Verbesserungen vor allem in den Bereichen der Animationen für jedes Element kommt. Das ist auch, was die sagen:

RecyclerView ist eine erweiterte und flexible Version von ListView. Diese Widget ist ein Container für große Sätze von Ansichten, die recycelt werden können und sehr effizient scrollte. Verwenden Sie das RecyclerView-Widget, wenn Sie Listen mit Elementen haben, die sich dynamisch ändern.

Sie haben auch die Flexibilität benutzerdefinierte Layout-Manager und Animationen für dieses Widget zu definieren.

In Zukunft werden wir wahrscheinlich ListViews nicht mehr verwenden. Darüber hinaus benötigt der RecyclerView nichts wie "notifyDataSetChanged()", wenn ein Element hinzugefügt oder aus Ihrer Liste gelöscht wird, was eine enorme Leistungsverbesserung darstellt.
Wenn Sie mehr wissen möchten, was Google bedeutet, sagen "erweiterte und flexible Version von ListView" Ich würde Ihnen empfehlen, diese Blog-Post A First Glance at Android’s RecyclerView zu lesen.

Aber Ihre Fragen explicity zu beantworten:

Gibt es irgendwelche Vorteile der vorhandenen Listview in meiner App zu RecyclerView Umwandlung?
Ja. Wie bereits gesagt, ist der RecyclerView viel flexibler und bietet kostenlose Animationen. (In Bezug auf diese auf eigene Faust)

Wann sollte ich RecyclerView verwenden?
Überall, wo ein ListView geeignet ist, ist auch ein RecyclerView.

Und eine weitere Frage:
Ist es notwendig, von Listview zu wechseln RecyclerView?
Im Moment absolut nicht! Sie müssen bedenken, dass der RecyclerView zu diesem Zeitpunkt noch nicht abgeschlossen ist. Es kann also in naher Zukunft zu Änderungen, Bugfixes und neuen Funktionen kommen. (Als Beispiel für einen Fehler: clipToPadding nicht atm arbeiten Zum Glück es has been reported bereits.)

1

Die RecyclerView wird die Zukunft sein, und es ist mehr als ein ListView2 und die Antwort des @ Reveres erklären auch die Fall.

Es ist an der Zeit, die Dokumentation zu überprüfen und einen kleinen Test zu machen, aber es ist nicht die Zeit zu wechseln, weil das RecyclerView das Support-V21 ist und Sie es in einer Produktionsversion nicht verwenden können.

+0

Welche Dokumentation ?! Ich kann es nicht finden ... Haben Sie einen Link zu den offiziellen Dokumenten oder API? – roiberg

+0

http://developer.android.com/preview/reference.html –

4

Ich werde versuchen, eine detaillierte Antwort auf Ihre Frage zu geben.

Mit dem Aufkommen von Android Lollipop machte der RecyclerView seinen Weg offiziell. Der RecyclerView ist viel mehr leistungsstark, flexibel und eine große Verbesserung gegenüber ListView. Ich werde versuchen, Ihnen einen detaillierten Einblick zu geben.

1) ViewHolder Muster

In einem Listview wurde empfohlen, das ViewHolder Muster zu verwenden, aber es war nie ein Zwang. Im Falle von RecyclerView ist dies unter Verwendung der Klasse RecyclerView.ViewHolder obligatorisch. Dies ist einer der Hauptunterschiede zwischen dem ListView und dem RecyclerView.

Es macht die Dinge ein wenig komplexer in RecyclerView, aber eine Menge Probleme, die wir in der ListView konfrontiert wurden, werden effizient gelöst.

Urteil

Wenn Sie bereits das ViewHolder Muster in Ihrem Listviews verwenden, dann wird es auf die RecyclerView durch Umschalten, nicht geändert werden.

2) Layout

Dies ist eine weitere massive Erweiterung des RecyclerView gebracht. In einer ListView ist der einzige verfügbare Ansichtstyp die vertikale ListView. Es gibt keine offizielle Möglichkeit, eine horizontale ListView zu implementieren.

nun eine RecyclerView verwenden, können wir eine haben

i) LinearLayoutManager - die sowohl vertikale als auch horizontale Listen unterstützt,

ii) StaggeredLayoutManager - die Pinterest wie gestaffelten Listen unterstützt,

iii) GridLayoutManager - unterstützt die Anzeige von Gittern wie in den Galerie-Apps.

Und das Beste ist, dass wir alle diese dynamisch tun können, wie wir wollen.

Urteil

Wenn Ihre App verlangt diese Art von dynamischen Funktion empfehle ich Ihnen dann sehr die RecyclerView zu verwenden. Es gibt andere Möglichkeiten, dies zu tun, aber die Verwendung des RecyclerView ist der einfachste Weg.

3) Artikel Animator

Listviews zur Unterstützung guter Animationen fehlen, aber die RecyclerView bringt eine ganz neue Dimension hinzu. Mit der RecyclerView.ItemAnimator-Klasse wird das Animieren der Ansichten so einfach und intuitiv.

Urteil

Wir können auch die Elemente eines Listview und es ist nicht so schwer zu, so dass kein starker Grund zu wechseln animieren.

4) Artikel Dekoration

Bei Listviews, dynamisch Elemente Dekoration wie Ränder oder Teiler Zugabe war nie einfach. Aber im Falle von RecyclerView gibt die RecyclerView.ItemDecorator Klasse den Entwicklern eine riesige Kontrolle, macht die Dinge aber etwas zeitaufwendiger und komplexer.

Urteil

Wir können dies auch in einem Listview tun, und wenn Sie in Dekorationen, dass viel Anpassung nicht brauchen, dann kann die Listview bei Ihnen bleiben.

5) OnItemTouchListener

Intercepting Artikel Klicks auf einem Listview war einfach, dank seiner AdapterView.OnItemClickListener Schnittstelle. Aber der RecyclerView gibt seinen Entwicklern viel mehr Macht und Kontrolle durch die RecyclerView.OnItemTouchListener, aber es kompliziert die Dinge ein bisschen für den Entwickler.

Urteil

Dies ist einer der „unnötig“ komplexen Dinge, die ich in RecyclerView gefunden, die Art und Weise mehr einfacher bei Listviews ist.

Verwandte Themen