Sobes.tech
Junior — Middle

V čem se liší použití metod requestLayout a invalidate při aktualizaci rozhraní?

sobes.tech AI

Odpověď od AI

Metoda requestLayout() se používá k oznámení systému, že velikost nebo pozice View se změnily a je třeba znovu spočítat rozložení. Při volání této metody dojde k novému průchodu měřením a rozmístěním prvků (measure/layout).

Metoda invalidate() signalizuje, že obsah View se změnil a je třeba jej překreslit (volání metody onDraw). Při tom se rozložení nepřepočítává, pouze se aktualizuje vizuální zobrazení.

Stručně:

  • requestLayout() — přepočítá velikost a pozici View.
  • invalidate() — překreslí View bez změny velikosti.

Příklad:

view.requestLayout(); // pokud se změnily parametry velikosti
view.invalidate();    // pokud se změnil pouze obsah k vykreslení