Potrebbe spiegare il metodo di un ArrayAdapter
getView()
.spiegazione del metodo GetView() di un ArrayAdapter
Ho letto la documentazione e ha tre parametri:
position
: La posizione della voce all'interno dei dati della scheda di set di la voce di cui vogliamo vista.convertView
: la vecchia visione di riutilizzare, se possibile. Nota: è necessario verificare che questa vista sia non nulla e di un tipo appropriato prima dell'uso. Se non è possibile convertire questa vista per visualizzare i dati corretti, questo metodo può creare una nuova vista.
liste eterogenee possono specificare il numero di tipi di vista, in modo che questa visione è sempre del tipo giusto (vedi getViewTypeCount() e getItemViewType (int)).parent
: Il genitore che questo punto di vista sarà eventualmente allegata al
ho capito il parametro position
. Come hanno detto, implica la posizione dell'oggetto, la vista è stata richiesta.
dove viene convertView
provengono da. Ho visto molti esempi in cui controllano se convertView
è nullo. Se è nullo, gonfiano una nuova istanza del layout di riga, lo popolano e lo restituiscono. Credo di essermi messo alla testa anche io, ma una cosa mi sconcerta ancora. Qual è il layout che viene passato attraverso il parametro convertView
. È se the resource
parameter that is passed in when initialising the ArrayAdapter
? È una copia cache dell'ultimo layout restituito da getView()
?
E infine. Cosa fa il parametro parent
. Non ho visto troppi esempi con questo. Molti di loro semplicemente riutilizzano/gonfiano un layout di riga e lo restituiscono.
(Mi sto chiedendo perché ho un'animazione on-clic nella mia ListView
. In particolare this one that aims to replicate Spotify's dropdown quick action menu. La mia animazione è stata un po 'lenta. Dopo la diagnosi di questo problema per un po', mi sono reso conto che questo è stato a causa di il fatto che il mio metodo getView()
prende un po 'di tempo per completare come sto gonfiando un layout fila fresco in ogni iterazione. qualcuno ha suggerito la memorizzazione nella cache del layout riga in un ViewHolder
mentre altri esempi indicano riutilizzare il parametro convertView
cioè solo gonfiare un layout di fila se convertView
è nullo.)
Questa è davvero una bella risposta! – Tarik
la migliore risposta tnx –