Sobes.tech
Junior — Middle

Čime se razlikuje korišćenje metoda requestLayout i invalidate u procesu ažuriranja interfejsa?

sobes.tech АИ

Одговор од АИ

Metoda requestLayout() se koristi za obaveštavanje sistema da je veličina ili pozicija View-a promenjena i da je potrebno ponovo izračunati raspored. Kada se pozove ova metoda, vrši se novi prolaz merenja i rasporeda elemenata (measure/layout).

Metoda invalidate() signalizira da se sadržaj View-a promenio i da ga treba ponovo nacrtati (pozivajući metodu onDraw). Međutim, raspored se ne ponovo računa, već se samo vizuelni prikaz ažurira.

Ukratko:

  • requestLayout() — ponovo računa veličinu i poziciju View-a.
  • invalidate() — ponovo crta View bez promene veličine.

Primer:

view.requestLayout(); // ako su se promenili parametri veličine
view.invalidate();    // ako se promenio samo sadržaj za crtanje