215 votes

Utilisation de forceLayout (), requestLayout () et invalidate ()

Je suis un peu confus quant aux rôles des méthodes forceLayout() , requestLayout() et invalidate() de la classe View .

Quelqu'un pourrait-il me donner des scénarios où ils doivent être appelés?

398voto

blipinsk Points 467

Pour mieux comprendre les réponses fournies par François BOURLIEUX et Dalvik, je vous suggère de jeter un coup d'œil à ce diagramme de cycle de vie de vue impressionnant d' Arpit Mathur : entrez la description de l'image ici

30voto

François BOURLIEUX Points 203

ici vous pouvez trouver une réponse: http://developer.android.com/guide/topics/ui/how-android-draws.html

pour moi, un appel à invalidate () actualise uniquement la vue et un appel à requestLayout () actualise la vue et calcule la taille de la vue à l'écran.

3voto

Dalvik Points 643

vous utilisez invalidate () sur une vue que vous souhaitez redessiner, son onDraw (Canvas c) sera invoqué et requestLayout () fera de nouveau le rendu complet de la présentation (phase de mesure et phase de positionnement). Vous devez l'utiliser si vous modifiez la taille de la vue au moment de l'exécution, mais uniquement dans des cas particuliers, tels que les contraintes de la vue parent, etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X