web-dev-qa-db-fra.com

Pourquoi le récipient à flotteur ne respecte pas ses contraintes de largeur et de hauteur lorsqu'elle est à l'intérieur d'un autre conteneur

Container(
  width: 200.0,
  height: 200.0,
  child: Container(
    width: 50.0,
    height: 50.0,
    decoration: BoxDecoration(
      shape: BoxShape.circle,
      color: Colors.red
    ),
  ),
)

J'essaie de trouver la réponse dans les documents de la classe des conteneurs, mais je ne l'ai pas trouvé.

Mise à jour :

Après une longue période, j'ai compris le problème.

Toutes les vues à l'intérieur d'une disposition doivent avoir une largeur, une hauteur, une position x et une position y. (Ceci s'applique à Android, iOS, Flutter, etc.)

Dans mon code, le conteneur intérieur a juste une largeur et une hauteur pour cette raison qu'il ne sait pas où commencer la peinture.

Pour cette raison, si le conteneur est placé dans un widget d'alignement, le conteneur obtient la position X et la position Y et fonctionne.

26
crrlos

Toutes les vues à l'intérieur d'une mise en page doivent avoir quatre contraintes:

  1. Largeur
  2. Hauteur
  3. Position x
  4. Y position de y

Ceci s'applique à Android, iOS, Flutter, etc.

Dans le code, le récipient intérieur a une largeur et une hauteur pour cette raison qu'il ne sait pas où commencer la peinture et que tout est disponible.

Mais, si le conteneur intérieur est placé dans un autre widget de mise en page qui aligne son enfant, par exemple, Center. Il obtiendra ses positions X et Y.

Container(
   decoration : BoxDecoration(color : Colors.green),
   width: 200.0,
   height: 200.0,
   child: Center(
        child: Container(
          width: 50.0,
          height: 50.0,
          decoration: BoxDecoration(
                      shape: BoxShape.circle,
                       color: Colors.red
                    ),
            ),
        )
)

enter image description here

Le récipient intérieur en rouge, le conteneur extérieur en vert.

0
crrlos