Sobes.tech
Junior — Middle

Երբ կանչում եք requestLayout() մեթոդը, պարտադիր է՝ կանչել onDraw() մեթոդը?

sobes.tech AI

Պատասխան AI-ից

requestLayout() մեթոդի կանչումը չի երաշխավորում անմիջապես onDraw()-ի կանչը:

requestLayout() սկսում է View-ի դիրքի և չափերի վերանախագծումը, ինչը հանգեցնում է onMeasure() և onLayout() կանչերի: Այս փուլերի հաջող ավարտից հետո համակարգը որոշում է, արդյոք անհրաժեշտ է View-ը նորից նկարել, և եթե այո, ապա կանչում է onDraw():

Այսպիսով, onDraw() չի պարտադիր անմիջապես կանչվում requestLayout()-ից հետո, այլ միայն այն դեպքում, երբ փոփոխությունները պահանջում են նոր նկարում:

Եթե ցանկանում եք ուժեղացնել նոր նկարումը առանց չափերի կամ դիրքի փոփոխության, օգտագործեք invalidate(), որը ուղղակիորեն հանգեցնում է onDraw() կանչին։