Sobes.tech
Junior — Middle

Pri volaní metódy requestLayout() je povinné volať metódu onDraw()?

sobes.tech AI

Odpoveď od AI

Volanie metódy requestLayout() nezaručuje okamžité volanie onDraw().

requestLayout() iniciuje prepočítanie polohy a veľkosti View, čo vedie k volaniu onMeasure() a onLayout(). Po úspešnom dokončení týchto krokov systém rozhodne, či je potrebné View prekresliť, a ak áno, zavolá onDraw().

Preto nie je nutné, aby bol onDraw() volaný hneď po requestLayout(), ale iba ak zmeny vyžadujú prekreslenie.

Ak chcete vynútiť prekreslenie bez zmeny veľkosti alebo polohy, použite invalidate(), ktoré priamo spôsobí volanie onDraw().