Junior — Middle
Aký je rozdiel medzi používaním requestLayout a invalidate pri aktualizácii rozhrania?
sobes.tech AI
Odpoveď od AI
Metoda requestLayout() se uporablja za obveščanje sistema, da se je velikost ali položaj View spremenil in je potrebno ponovno izračunati postavitev. Ob klicu te metode se izvede nov prehod merjenja in razporejanja elementov (measure/layout).
Metoda invalidate() signalizira, da se je vsebina View spremenila in jo je treba ponovno narisati (klic metode onDraw). Vendar se postavitev ne ponovno izračuna, temveč se le posodobi vizualni prikaz.
Povzetek:
requestLayout()— ponovno izračuna velikost in položaj View.invalidate()— ponovno nariše View brez spremembe velikosti.
Primer:
view.requestLayout(); // če so se spremenili parametri velikosti
view.invalidate(); // če se je spremenil le vsebina za risanje