Sobes.tech
Junior — Middle

Quando si chiama il metodo requestLayout(), viene sempre chiamato il metodo onDraw()?

sobes.tech AI

Risposta dell'AI

La chiamata al metodo requestLayout() non garantisce una chiamata immediata a onDraw().

requestLayout() avvia il ricalcolo della posizione e delle dimensioni della View, che comporta la chiamata a onMeasure() e onLayout(). Dopo il completamento di queste fasi, il sistema decide se è necessario ridisegnare la View, e in tal caso chiama onDraw().

Pertanto, onDraw() non viene chiamato necessariamente subito dopo requestLayout(), ma solo se le modifiche richiedono una ridisegnatura.

Se si desidera forzare una ridisegnatura senza modificare dimensioni o posizione, si dovrebbe usare invalidate(), che porta direttamente alla chiamata di onDraw().