Sobes.tech
Junior — Middle

requestLayout() ыкмасын чакырганда, onDraw() ыкмасын да чакырыш керекпи?

sobes.tech AI

AIден жооп

requestLayout() ыкмамасын чакыру onDraw() ыкмасын дароо чакырылуын кепилдебейт.

requestLayout() Viewдин жайгашкан жерин жана өлчөмдөрүн кайра эсептөөгө баштайт, бул onMeasure() жана onLayout() чакырууларына алып келет. Бул этаптар ийгиликтүү аяктагандан кийин, системасы View кайра чийүү керекпи деп чечет, жана эгер керек болсо, onDraw() чакырылат.

Ошондуктан, onDraw() зарылчылык болсо гана requestLayout()дан кийин чакырылат, ал эми өзгөртүүлөр кайра чийүү талап кылса гана.

Эгер өлчөмдөрдү же жайгаштырылышын өзгөртпөстөн, мажбурлап кайра чийүү керек болсо, invalidate() колдонуп, ал түз эле onDraw() чакыруусуна алып келет.