Junior — Middle
A requestLayout() metódus hívásakor kötelező meghívni az onDraw() metódust?
sobes.tech MI
Válasz az MI-től
A requestLayout() metódus hívása nem garantálja az onDraw() azonnali meghívását.
A requestLayout() újraszámolja a View helyét és méretét, ami az onMeasure() és onLayout() hívásait eredményezi. Ezek sikeres végrehajtása után a rendszer eldönti, szükség van-e a View újrarajzolására, és ha igen, meghívja az onDraw() metódust.
Így az onDraw() nem feltétlenül hívódik meg közvetlenül a requestLayout() után, csak akkor, ha a változások újrarajzolást igényelnek.
Ha kényszeríteni szeretné az újrarajzolást anélkül, hogy a méretet vagy a pozíciót módosítaná, használja az invalidate() metódust, amely közvetlenül az onDraw() meghívásához vezet.