© Excellent backgrounds/Shutterstock.com
Java Magazin
CardView und RecyclerView in Android L

Neue UI-Widgets

Auch diese Kolumne steht wieder ganz im Zeichen der neuen Android-Version „L Developers Preview“. Nachdem wir in der letzten Ausgabe gezeigt haben, welche Möglichkeiten die neuen Animationen mit sich bringen, wollen wir in der aktuellen Kolumne einen Blick auf zwei neue UI-Widgets - CardView und RecyclerView - werfen und klären, ob deren Einsatz in der eigenen App zukünftig Vorteile mit sich bringen kann.

Arne Limburg, Lars Röwekamp


Wie bereits berichtet [1] bringt Android L nicht nur ein neues Look and Feel (Material Design) mit sich, sondern auch zwei UI-Widgets, die das zugehörige Theme als Style nutzen. Während das erste Widget RecyclerView stark an die bereits existierende ListView erinnert, stellt das zweite Widget CardView ein völlig neues UI-Element dar. Beide Widgets zeichnen sich durch eine hohe Flexibilität aus, die aber zumindest bei einer der beiden Widgets gleichzeitig auch eine nicht geringe Komplexität mit sich bringt. Aber immer der Reihe nach.

RecyclerView

Ein erster Blick auf die offizielle Android-L-Dokumentation von Google legt den Verdacht nahe, dass es sich bei der RecyclerView lediglich um eine Art „gepimpte“ Variante der ListView handelt, denn unter [2] wird die View explizit als „more advanced and flexible version of ListView“ angepriesen. Ganz verkehrt ist dies sicherlich nicht, da die RecyclerView als Container zur Verwaltung von frei definierbaren Detailviews verwendet werden soll, die wiederum zur Darstellung von durch einen speziellen Adapter zur Verfügung gestellten Daten dienen. „Verwaltung von Views“ bedeutet in diesem Kontext u. a., dass sich die RecyclerView um das Wiederverwenden (aka „recyceln“) von Viewinstanzen kümmert – daher der Name – und so u. a. ein deutlich effizienteres Scrollen durch lange Listen von Daten ermöglicht.

Um den Einstieg in die Nutzung des neuen Widgets möglichst einfach zu gestalten, werden ein Layout-Manager zur Positionierung der List-Items (LinearLayoutManager) sowie Animationen für Operationen, wie zum Beispiel der Selektion eines Listenelements (Default­ItemAnimator) standardmäßig vorgegeben. Natürlich können beide Elemente – Layout-Manager und Animationen – auch durch eigene Varianten ersetzt werden.

Möchte man eine RecyclerView innerhalb einer eigenen Activity verwenden, muss für diese neben dem bereits erwähnten Layout-Manager zusätzlich ein Adapter zum Zugriff auf die Daten angegeben werden. Auch wenn es sich hierbei nicht um den von der ListView bekannten Adapter – android.widget.BaseAdapter – sondern um einen RecyclerView.Adapter mit gänzlich anderen Callback-Methoden handelt, erinnert dieses Vorgehen doch stark an das bereits bekannte ListView Pattern.

Das eigentliche „Recyclen“ der Viewinstanzen der RecyclerView erfolgt durch das Zusammenspiel von Layout-Manager und Adapter. Der Layout-Manager positioniert die Elemente innerhalb des umliegenden View-Containers und stellt so fest, wann ein Element nicht mehr sicht...

Java Magazin
CardView und RecyclerView in Android L

Neue UI-Widgets

Auch diese Kolumne steht wieder ganz im Zeichen der neuen Android-Version „L Developers Preview“. Nachdem wir in der letzten Ausgabe gezeigt haben, welche Möglichkeiten die neuen Animationen mit sich bringen, wollen wir in der aktuellen Kolumne einen Blick auf zwei neue UI-Widgets - CardView und RecyclerView - werfen und klären, ob deren Einsatz in der eigenen App zukünftig Vorteile mit sich bringen kann.

Arne Limburg, Lars Röwekamp


Wie bereits berichtet [1] bringt Android L nicht nur ein neues Look and Feel (Material Design) mit sich, sondern auch zwei UI-Widgets, die das zugehörige Theme als Style nutzen. Während das erste Widget RecyclerView stark an die bereits existierende ListView erinnert, stellt das zweite Widget CardView ein völlig neues UI-Element dar. Beide Widgets zeichnen sich durch eine hohe Flexibilität aus, die aber zumindest bei einer der beiden Widgets gleichzeitig auch eine nicht geringe Komplexität mit sich bringt. Aber immer der Reihe nach.

RecyclerView

Ein erster Blick auf die offizielle Android-L-Dokumentation von Google legt den Verdacht nahe, dass es sich bei der RecyclerView lediglich um eine Art „gepimpte“ Variante der ListView handelt, denn unter [2] wird die View explizit als „more advanced and flexible version of ListView“ angepriesen. Ganz verkehrt ist dies sicherlich nicht, da die RecyclerView als Container zur Verwaltung von frei definierbaren Detailviews verwendet werden soll, die wiederum zur Darstellung von durch einen speziellen Adapter zur Verfügung gestellten Daten dienen. „Verwaltung von Views“ bedeutet in diesem Kontext u. a., dass sich die RecyclerView um das Wiederverwenden (aka „recyceln“) von Viewinstanzen kümmert – daher der Name – und so u. a. ein deutlich effizienteres Scrollen durch lange Listen von Daten ermöglicht.

Um den Einstieg in die Nutzung des neuen Widgets möglichst einfach zu gestalten, werden ein Layout-Manager zur Positionierung der List-Items (LinearLayoutManager) sowie Animationen für Operationen, wie zum Beispiel der Selektion eines Listenelements (Default­ItemAnimator) standardmäßig vorgegeben. Natürlich können beide Elemente – Layout-Manager und Animationen – auch durch eigene Varianten ersetzt werden.

Möchte man eine RecyclerView innerhalb einer eigenen Activity verwenden, muss für diese neben dem bereits erwähnten Layout-Manager zusätzlich ein Adapter zum Zugriff auf die Daten angegeben werden. Auch wenn es sich hierbei nicht um den von der ListView bekannten Adapter – android.widget.BaseAdapter – sondern um einen RecyclerView.Adapter mit gänzlich anderen Callback-Methoden handelt, erinnert dieses Vorgehen doch stark an das bereits bekannte ListView Pattern.

Das eigentliche „Recyclen“ der Viewinstanzen der RecyclerView erfolgt durch das Zusammenspiel von Layout-Manager und Adapter. Der Layout-Manager positioniert die Elemente innerhalb des umliegenden View-Containers und stellt so fest, wann ein Element nicht mehr sicht...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang