Junior — Middle
Երբ կանչում եք requestLayout() մեթոդը, պարտադիր է՝ կանչել onDraw() մեթոդը?
sobes.tech AI
Պատասխան AI-ից
requestLayout() մեթոդի կանչումը չի երաշխավորում անմիջապես onDraw()-ի կանչը:
requestLayout() սկսում է View-ի դիրքի և չափերի վերանախագծումը, ինչը հանգեցնում է onMeasure() և onLayout() կանչերի: Այս փուլերի հաջող ավարտից հետո համակարգը որոշում է, արդյոք անհրաժեշտ է View-ը նորից նկարել, և եթե այո, ապա կանչում է onDraw():
Այսպիսով, onDraw() չի պարտադիր անմիջապես կանչվում requestLayout()-ից հետո, այլ միայն այն դեպքում, երբ փոփոխությունները պահանջում են նոր նկարում:
Եթե ցանկանում եք ուժեղացնել նոր նկարումը առանց չափերի կամ դիրքի փոփոխության, օգտագործեք invalidate(), որը ուղղակիորեն հանգեցնում է onDraw() կանչին։