Sobes.tech
Junior — Middle

Moet bij het aanroepen van de requestLayout() methode de onDraw() methode altijd worden aangeroepen?

sobes.tech AI

Antwoord van AI

Het aanroepen van de methode requestLayout() garandeert niet dat onDraw() onmiddellijk wordt aangeroepen.

requestLayout() initieert de herberekening van de positie en afmetingen van de View, wat leidt tot een oproep van onMeasure() en onLayout(). Na succesvolle voltooiing van deze stappen beslist het systeem of de View opnieuw moet worden getekend, en zo ja, roept het onDraw() aan.

Daarom wordt onDraw() niet noodzakelijk direct na requestLayout() aangeroepen, maar alleen als de wijzigingen een hertekening vereisen.

Als u een hertekening wilt forceren zonder de grootte of positie te wijzigen, gebruik dan invalidate(), dat direct leidt tot een oproep van onDraw().