9
votes

Développez les widgets dans le widget Stack

J'ai une pile de widgets avec deux widgets à l'intérieur. L'un d'eux dessine l'arrière-plan, l'autre dessine par-dessus. Je veux que les deux widgets aient la même taille.

Je veux que le widget supérieur, qui est une colonne, se développe et remplisse la pile verticalement à la taille définie par le widget d'arrière-plan. J'ai essayé de définir le mainAxis mainAxisSize: MainAxisSize.max mais ce n'est pas le cas; Aidez-moi.

Comment puis-je le faire fonctionner


3 commentaires

Souhaitez-vous ajouter un petit peu votre code source?


Aucune des réponses n'a fonctionné pour moi


Si vous ajoutez votre code, je peux probablement vous aider.


3 Réponses :


0
votes

Je pense que vous pourriez envelopper votre colonne dans un conteneur comme celui-ci:

 Container(
   height: double.infinity,
   width: double.infinity,
   child: Column()
 ),


0 commentaires

0
votes

Vous pouvez essayer d'encapsuler la colonne avec un widget positioned . Réglez le top sur 0 et le bottom sur 0. Cela fera que la colonne remplira la pile verticalement.

exemple de code:

Stack(
      children: <Widget>[
        // Background widget rep
        Container(
          color: Colors.pink,
        ),
        Positioned(
          top: 0,
          bottom: 0,
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text('madonna'),
              Text('flutter'),
            ],
          ),
        )
      ],
    )


0 commentaires

20
votes

Utilisez Positioned.fill .

    Stack(
      children: <Widget>[
        Positioned.fill(
          child: Column(
            children: <Widget>[
              //...
            ],
          ),
        ),
        //...
      ],
    );

Plus d'informations sur Positioned dans le widget Flutter de la semaine


1 commentaires

J'ai économisé beaucoup de temps. je faisais du hit and trail avant de chercher.