2010-11-11 13 views
62

La mia domanda è quasi esattamente a questa domanda:Come si clona una vista?

Clone textview to append it to a ViewGroup

Tuttavia, mi è stato gonfiare la vista, e poi tentare di clonarlo a livello di oggetto per motivi di prestazioni (Non voglio analizzare XML ogni singola ora), quindi la risposta non mi aiuta. View.clone() è protetto e apparentemente non ha un costruttore di copie. C'è un modo per fare questo?

+2

Sei sicuro che sarebbe molto più veloce clonarlo a livello di oggetto piuttosto che gonfiarlo due volte? Cosa sta guidando questa affermazione? –

+1

Suppongo di aver sbagliato, è più come se volessi vedere se sarebbe stato più veloce. – SapphireSun

+1

Se si creano molte istanze di una vista particolare, è probabile che si stia utilizzando una ListView o qualche altro elemento che ricicla le istanze di visualizzazione mentre si scorre. –

risposta

100

Non è possibile clonare le visualizzazioni, il modo per farlo è gonfiare la vista ogni volta. Si noti che l'XML è compilato in binario che può essere analizzato in modo molto efficiente.

+6

Ho letto da qualche parte oggi che gonfiare le visualizzazioni è molto costoso. Soprattutto nelle liste. – frostymarvelous

+5

@frostymarvelous, È molto più costoso (in termini di velocità) rispetto al riutilizzo di viste già create (anche se non è sempre un'opzione), ma c'è solo una leggera differenza tra la generazione rigida e programmatica di nuove viste. – Jakar

+4

non è possibile clonare una vista specifica! = o fantastico! – usman

Problemi correlati