2014-10-26 10 views
22

Ho appena iniziato a utilizzare RecyclerView e ho visto che mancano molte funzionalità come header, footer, divisore, selettore di lista, ora ho dei ripensamenti sull'utilizzo invece di ListView.Quali sono i vantaggi di RecyclerView rispetto a ListView?

Quali sono i vantaggi e gli svantaggi di RecyclerView rispetto a ListView? Può gestire viste più complesse di ListView?

Ho utilizzato ListView fino ad ora e per alcuni, è ora di passare a RecyclerView o è troppo presto ora?

+1

tutte quelle caratteristiche sono ora al di fuori della vista, vedere http://www.grokkingandroid.com/first-glance -androidi-recyclerview/ – pskink

risposta

79

Con l'avvento di Android Lollipop, RecyclerView ha fatto ufficialmente il suo ingresso. Il RecyclerView è molto più potente, flessibile e un importante miglioramento su ListView. Proverò a darti una visione dettagliata di ciò.

Vantaggi

1) ViewHolder modello

in una lista, è stato suggerito l'uso del modello ViewHolder ma non era mai una costrizione. In caso di RecyclerView, questo è obbligatorio utilizzando la classe RecyclerView.ViewHolder. Questa è una delle principali differenze tra ListView e RecyclerView.

Rende le cose un po 'più complesse in RecyclerView ma un sacco di problemi che abbiamo affrontato in ListView sono risolti in modo efficiente.

2) LayoutManager

Questo è un altro miglioramento massiccia portato al RecyclerView. In un controllo ListView, l'unico tipo di visualizzazione disponibile è il ListView verticale. Non esiste un modo ufficiale per implementare un ListView orizzontale.

Ora utilizzando un RecyclerView, possiamo avere un

i) LinearLayoutManager - che supporta entrambe le liste verticali e orizzontali,

ii) StaggeredLayoutManager - che sostiene Pinterest come liste sfalsati,

iii) GridLayoutManager - che supporta la visualizzazione delle griglie come mostrato nelle app Galleria.

E la cosa migliore è che possiamo fare tutto questo dinamicamente come vogliamo.

3) Animator Articolo

ListViews mancano a sostegno delle buone animazioni, ma il RecyclerView porta una nuova dimensione ad esso. Utilizzando la classe RecyclerView.ItemAnimator, animare le visualizzazioni diventa molto semplice e intuitivo.

4) Decorazioni Articolo

In caso di ListViews, decorando in modo dinamico elementi come l'aggiunta di bordi o divisori è mai stato facile. Ma nel caso di RecyclerView, la classe RecyclerView.ItemDecorator offre un enorme controllo agli sviluppatori, ma rende le cose un po 'più lunghe e complesse.

5) OnItemTouchListener

di intercettazione clic su un elemento ListView era semplice, grazie alla sua interfaccia AdapterView.OnItemClickListener. Ma il RecyclerView dà molto più potere e controllo ai suoi sviluppatori dal RecyclerView.OnItemTouchListener ma complica un po 'le cose per lo sviluppatore.

Svantaggi

i) è molto più complessa di una visualizzazione elenco.

ii) Può essere necessario molto tempo per un principiante per comprendere pienamente un RecyclerView.

iii) Può rendere inutilmente difficile la codifica.

iv) Avrete bisogno di passare molto più tempo con lui quanto mai necessario per una ListView

+0

Bella spiegazione tizio :) +1 –

+0

Bella spiegazione ... Sto affrontando un problema mentre rilevo la posizione dell'oggetto della vista più visibile in alto in modo da poter visualizzare la data di quell'elemento mentre si scorre come whatsapp fa ... qualsiasi suggerimento riguardo questo mi aiuterà molto ... è stato un gioco da ragazzi se avessi usato listview ... grazie in anticipo ... – srv242

+0

Se ho capito bene il tuo problema, allora questo è qualcosa che potresti voler vedere, https://gist.github.com/mipreamble/b6d4b3d65b0b4775a2 2e # file recyclerviewpositionhelper-java –

Problemi correlati