C'è qualche vantaggio nel convertire la Listview esistente nella mia app su RecyclerView ?? Anche quando dovrei usare RecyclerView ??Devo cambiare la vista elenco esistente nella mia app su RecyclerView?
risposta
Questa è una domanda difficile a cui rispondere. Prima di tutto: pensa allo RecyclerView
come il successore dello AdapterViews
che viene fornito con un sacco di miglioramenti utili soprattutto nei campi delle animazioni per ciascun elemento. In realtà questo è anche ciò che dice il
RecyclerView è una versione più avanzata e flessibile di ListView. Questo widget è un contenitore per ampi set di viste che possono essere riciclati e scorrevoli in modo molto efficiente. Usa il widget RecyclerView quando hai elenchi con elementi che cambiano in modo dinamico.
Hai anche la flessibilità di definire i gestori di layout personalizzati e le animazioni per questo widget.
Quindi in futuro probabilmente non utilizzeremo più ListViews
. Inoltre, RecyclerView non ha bisogno di nulla come "notifyDataSetChanged()"
quando un articolo viene aggiunto o eliminato dal tuo Elenco, il che è un enorme miglioramento delle prestazioni.
Se vuoi sapere di più cosa significa Google dicendo "" versione più avanzata e flessibile di ListView " Ti consiglio di leggere questo post sul blog A First Glance at Android’s RecyclerView.
Ma per rispondere alle vostre domande esplicitamente:
È stato rilevato qualche vantaggi della conversione ListView esistente nella mia app per RecyclerView?
Sì. Come già detto, RecyclerView è molto più flessibile e viene fornito con animazioni a costo zero. (In termini di fare questo da soli)
Quando dovrei utilizzare RecyclerView?
Ovunque dove un ListView è appropriato è anche un RecyclerView.
E un'ulteriore domanda:
E 'necessario passare da ListView a RecyclerView?
Al momento assolutamente no! Devi considerare che il RecyclerView non è definitivo a questo punto. Quindi potrebbero esserci alcune modifiche, correzioni di errori e nuove funzionalità nel prossimo futuro. (Per fare un esempio di un bug: clipToPadding
non funziona atm Per fortuna è has been reported già.)
Il RecyclerView sarà il futuro, ed è più di un ListView2 e la risposta dei di @ venera spiegare bene la Astuccio.
È il momento di controllare la documentazione e fare un piccolo test, ma non è il momento di cambiare, perché RecyclerView è il supporto-v21 e non è possibile utilizzarlo in una versione di produzione.
Proverò a dare una risposta dettagliata alla tua domanda.
Con l'avvento di Android Lollipop, il RecyclerView ha fatto la sua strada ufficialmente. Il RecyclerView è molto più potente, flessibile e un importante miglioramento su ListView. Proverò a darti una visione dettagliata di ciò.
1) ViewHolder Motivo
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.
Verdetto
Se si sta già utilizzando il modello ViewHolder nelle ListViews, allora non ci sarà alcun cambiamento passando al RecyclerView.
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.
Verdetto
Se le vostre esigenze app questo tipo di una caratteristica dinamica, allora vi consiglio vivamente di utilizzare il RecyclerView. Ci sono altri modi per farlo, ma l'utilizzo di RecyclerView è il modo più semplice.
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.
Verdetto
Possiamo anche animare le voci di un controllo ListView e la sua non è poi così difficile anche, quindi non è un forte motivo per passare.
4) Decorazioni Articolo
In caso di ListViews, decorando in modo dinamico elementi come l'aggiunta di bordi o divisori è mai stato facile. Ma in caso di RecyclerView, la classe RecyclerView.ItemDecorator offre un enorme controllo agli sviluppatori, ma rende le cose un po 'più lunghe e complesse.
Verdetto
Possiamo fare questo in un ListView troppo e se non avete bisogno di molto la personalizzazione di decorazioni, poi il ListView in grado di stare con te.
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.
Verdetto
Questo è uno dei più "inutilmente" le cose complesse che ho trovato in RecyclerView, che è il modo più semplice in caso di ListViews.
Quale documentazione ?! Non riesco a trovarlo ... Hai un link ai documenti ufficiali o alle API? – roiberg
http://developer.android.com/preview/reference.html –