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().