Sobes.tech
Junior — Middle

Quelle est la différence entre l'utilisation des méthodes requestLayout et invalidate lors de la mise à jour de l'interface?

sobes.tech IA

Réponse de l'IA

La méthode requestLayout() est utilisée pour informer le système que la taille ou la position de la vue ont changé et qu'il est nécessaire de recalculer la disposition. Lors de l'appel de cette méthode, une nouvelle étape de mesure et de disposition des éléments (measure/layout) est effectuée.

La méthode invalidate() signale que le contenu de la vue a changé et doit être redessiné (appeler la méthode onDraw). Cependant, la disposition n'est pas recalculée, seule l'affichage visuel est mis à jour.

En résumé :

  • requestLayout() — recalcul de la taille et de la position de la vue.
  • invalidate() — redessiner la vue sans changer sa taille.

Exemple :

view.requestLayout(); // si les paramètres de taille ont changé
view.invalidate();    // si seul le contenu à dessiner a changé