Junior — Middle
Wat is het verschil tussen het gebruik van requestLayout en invalidate tijdens het bijwerken van de interface?
sobes.tech AI
Antwoord van AI
De methode requestLayout() wordt gebruikt om het systeem te informeren dat de grootte of positie van de View is veranderd en dat de layout opnieuw moet worden berekend. Bij het aanroepen van deze methode wordt een nieuwe meet- en plaatsingsronde (measure/layout) uitgevoerd.
De methode invalidate() geeft aan dat de inhoud van de View is veranderd en opnieuw moet worden getekend (de onDraw-methode wordt aangeroepen). De layout wordt hierbij niet opnieuw berekend, alleen de visuele weergave wordt bijgewerkt.
Samengevat:
requestLayout()— herberekent de grootte en positie van de View.invalidate()— tekent de View opnieuw zonder de grootte te wijzigen.
Voorbeeld:
view.requestLayout(); // als de grootteparameters zijn gewijzigd
view.invalidate(); // als alleen de inhoud voor het tekenen is gewijzigd