Sobes.tech
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