2011-09-08 10 views
10

Nella GUI, quando è necessario ridisegnare una vista. Solitamente lo facciamo come segue:Perché utilizzare la parola "invalidate" per richiedere una vista da ridisegnare?

View v = View(); 
v.invalidate() 

Non ho idea che l'operazione "invalidate()" sia così denominata. In inglese, "invalidare" significa fare qualcosa non valido. Ma "invalidare una vista" nella programmazione della GUI è pensato per rendere ridisegnata la vista. Non sono un madrelingua inglese. Per favore, dammi suggerimenti. Tks.

+11

Il punto è che l'API Android non vuole chiamarlo ridisegna() perché ciò implica che il ridisegno avverrà immediatamente (all'interno della funzione stessa). Considerando invalitade() si sa che la vista verrà ridisegnata non appena le librerie di sistema Android saranno in grado di farlo. Chiamarla invalida invece di ridisegnare è una convenzione di denominazione molto migliore perché è più precisa rispetto a ciò che la funzione sta effettivamente facendo. –

risposta

9

Per "invalidare una vista" significa che tutti i dati che possono essere già disegnati non sono più validi. La visualizzazione dei dati non è valida, quindi invalidate() per contrassegnarla come tale. È meno che la funzione lo renda invalido fino a quando non è già valido, ma nessuno lo sa ancora fino al invalidate(). Lo scopo della funzione è di dire al resto del codice che i dati delle visualizzazioni non sono validi.

4

L'invalido è semanticamente diverso dal ridisegno in quanto in genere contrassegna solo un elemento da ridisporre in un secondo momento, anziché il ridisegno in fase di chiamata. L'idea è che quando più aree eventualmente sovrapposte vengono invalidate, la quantità di ridisegno in un secondo momento può quindi essere uguale alla somma delle aree non sovrapposte. Cioè, potremmo ridisegnare solo una volta per diverse invalidazioni successive. Quindi esiste la distinzione tra ridisegno e invalidazione.

Problemi correlati