Nello sviluppo di Android.
Il pattern Viewholder viene utilizzato insieme ad adattatori come il base adapter o il Recyclerview dot adapter
per ottimizzare le prestazioni e l'efficienza della visualizzazione di elenchi o griglie di dati.
Aiuta a migliorare le prestazioni di scorrimento degli elenchi, riutilizzando le viste e riducendo al minimo la necessità di gonfiare e trovare
ripetutamente le viste per ogni elemento.
In questo video, quindi, parleremo del pattern Viewholder e di come funziona all'interno di un adattatore di base.
Quando si creano le viste per gli elementi di una vista elenco, ad esempio, utilizzando il metodo Get View dell'adattatore,
in genere si utilizza il metodo find view by ID per trovare le singole viste all'interno di ogni layout di elemento.
Tuttavia, questo processo può richiedere molto tempo, soprattutto se l'elenco contiene un gran numero di elementi.
Ad esempio, in questo elenco abbiamo quattro voci, ma che dire di 100 voci o di 1000 voci?
Quindi dobbiamo scrivere 1000 volte, per trovare una vista in base all'ID, e questo non è un buon approccio.
La soluzione è utilizzare il modello Viewholder.
Il modello Viewholder mira a risolvere questa inefficienza riciclando e riutilizzando le visualizzazioni già gonfiate.
Iniziamo a capire come funziona questo modello, il modello viewholder.
Prima di tutto, dobbiamo creare una classe Viewholder, che è una classe statica all'interno di questa classe adattatore personalizzata.
Si tratta quindi di una classe interna, una classe statica interna all'adattatore che contiene i riferimenti alle viste all'interno di
un layout di elementi.
Lo scopo di questa classe è quello di memorizzare questi riferimenti.
Una volta trovate le viste, si utilizza la funzione Trova vista per ID, in modo da poterle riutilizzare.
Quando si legano i dati alle viste.
Torniamo all'elemento Il mio elenco, che è un layout personalizzato degli elementi.
Abbiamo solo una vista di testo, quindi dichiarerò questa vista di testo in questa classe.
TextView Visualizzazione del testo Alt+ Invio.
Ed eccoci qui.
Se si hanno due viste di testo, è necessario creare due viste di testo.
Passiamo alla vista get e iniziamo a creare il riferimento per il supporto della vista della classe Viewholder.
Lo chiamerò "hold".
Quindi il primo passo è creare i riferimenti alle viste all'interno di un layout di elementi.
Il secondo passo consiste nel creare un'istanza del view holder.
Il terzo passo consiste nell'iniziare ad associare l'origine dati alle viste.
Se convertire la vista uguale a null.
E si può vedere che questa è la vista convertire in vista quando si crea una nuova vista per un elemento,
gonfiandola dal layout XML, oppure quando si ricicla una vista che ha uno schermo scrollato, si può controllare se il
parametro convertire la vista non è nullo.
Se non è nullo, significa che si può riutilizzare questa vista invece di gonfiarla e si vuole.
Quindi la conversione in vista è una vista riciclata che si può riutilizzare per migliorare le prestazioni dei componenti dell'interfaccia utente
basati su elenchi, come le viste elenco, le viste griglia e la vista riciclatore.
In questo caso, la nostra vista elenco.
Si pensi quindi a un parametro di vista convertito che rappresenta una di queste viste riciclate.
Quando si scorre un elenco, le visualizzazioni che escono dallo schermo vengono riciclate in modo da poter essere riutilizzate
per i nuovi elementi che arrivano sullo schermo.
Il parametro della vista convertita rappresenta una di queste viste riciclate.
Quindi, se non è nullo, se è riciclato, userò questo altro qui.
Impostiamo Holder, che è la classe Holder della vista e la inizializziamo come view holder,
la fondiamo e convertiamo il tag view dot get.
Lo scopo principale dell'uso del metodo get tag nel metodo get view è quello di recuperare un oggetto Viewholder precedentemente
associato.
Il pattern view holder viene utilizzato per ottimizzare il riciclo delle viste e migliorare le prestazioni dei componenti dell'interfaccia utente
basati su elenchi.
A tale scopo, utilizziamo il tag get per associarlo all'oggetto titolare.
Quindi, quando la vista convertita è nulla, si gonfia una nuova vista e questo codice, altrimenti, se non è nulla, si
usa la vista, migliorando le prestazioni perché si gonfiano le viste quando necessario.
Utilizzerò convert view equal to layout inflator dot from context dot inflate.
Passerò a una nuova linea o a un nuovo layout di punti.
Voce in elenco.
Il secondo parametro è il genitore, che è un gruppo di visualizzazione.
Il terzo parametro è false, che è collegato alla radice.
Ma cos'è il gonfiatore di layout e perché lo usiamo?