Sobes.tech
Junior — Middle

requestLayout() metodunu çağırarkən, onDraw() metodunun çağırılması mütləqdirmi?

sobes.tech Süni İntellekt

AI-dan cavab

requestLayout() metodunun çağırılması, onDraw() metodunun dərhal çağırılmasını təmin etmir.

requestLayout() View-in yerləşdirilməsi və ölçülərinin yenidən hesablanmasını təşviq edir, bu da onMeasure() və onLayout() çağırışlarına səbəb olur. Bu mərhələlər uğurla tamamlandıqdan sonra, sistem View-in yenidən çəkilməsinə ehtiyac olub-olmadığını qərar verir və əgər ehtiyac varsa, onDraw() çağırılır.

Beləliklə, onDraw() hər zaman requestLayout() dan dərhal sonra çağırılmır, yalnız dəyişikliklər yenidən çəkilmə tələb edirsə çağırılır.

Əgər ölçü və ya yerləşdirmə dəyişmədən məcburi yenidən çəkilmə etmək istəyirsinizsə, birbaşa onDraw() çağıran invalidate() istifadə edin.