7
votes

Flutter Container () vs SizedBox () pour factice vide

Je suis curieux au propos de ça. J'ai vu de nombreux exemples utilisant Container() pour un widget caché factice, par exemple, lorsque le chargement est terminé, alors nous setState(() { _isLoaded = true; }); . On peut donc utiliser l'état comme ça, non?

return _isLoaded ? SizedBox() : LoaderWidget();

Ou peut-être que l'utilisation de SizedBox() est en fait meilleure car elle ne prend pas beaucoup de paramètres et est souvent utilisée pour le remplissage de toute façon?

return _isLoaded ? Container() : LoaderWidget();

Ou ai-je tort?


3 Réponses :


5
votes

en ce qui concerne que la classe Container () (widget) a plus de propriétés et de méthodes, son instanciation sera un peu plus coûteuse, donc vous avez raison d'utiliser SizedBox est plus efficace.


0 commentaires

18
votes

En cas d'utilisation comme espace réservé:

Conteneur si le widget n'a pas d'enfant, pas de hauteur, pas de largeur, pas de contraintes et pas d'alignement, mais que le parent fournit des contraintes limitées, alors Container se développe pour s'adapter aux contraintes fournies par le parent.

SizedBox si le widget n'a pas d'enfant, pas de hauteur, pas de largeur, alors la largeur et la hauteur sont nulles.

Par conséquent, SizedBox() sert davantage d'espace réservé syntaxique.

Notez également que SizedBox () est un constructeur const mais que Container () ne l'est pas. Le premier permet au compilateur de créer un code plus efficace.


0 commentaires

0
votes

Vous pouvez utiliser le widget Visibilité , qui utilisera SizedBox pour le remplacement par défaut.


0 commentaires