web-dev-qa-db-fra.com

Comment ajouter dynamiquement les widgets à la colonne dans Flutter?

J'ai ajouté quelques widgets dans le ListView. Pour que je puisse faire défiler tous les widgets. Maintenant, je devais ajouter un widget supplémentaire au ListView pour charger la liste des commentaires. Je ne peux pas ajouter le ListView à l'intérieur du ListView. Et d'ailleurs, je n'ai pas besoin du parchemin séparé pour mes commentaires. Il devrait être fait défiler avec les widgets à l'intérieur du ListView. J'ai donc prévu d'ajouter le Column au lieu de ListView. Pourriez-vous aider à ajouter mes commentaires dynamiquement dans le Columns?

new Expanded(
          child:
          new ListView(
            shrinkWrap: true,
            children: <Widget>[

              // Title

              new Padding(padding: const EdgeInsets.only(
                  top: 10.00, left: 10.00),
                child: new Text(
                  _feed.title, textAlign: TextAlign.start,),
              ),

              // content

              new Container(
                child: new Text(
                  _feed.content, textAlign: TextAlign.start,),
              ),

              // Comments List will go here

            ],
          ),
        ),
5
esu

Si vous avez déjà les données de commentaires, créez simplement une liste, puis passez-la à la propriété children de Column. Quelque chose comme:

var commentWidgets = List<Widget>();
for (var comment in comments) {
  commentWidgets.Add(Text(comment.text)); // TODO: Whatever layout you need for each widget.
}
…

new Expanded(
      child:
      new ListView(
        shrinkWrap: true,
        children: <Widget>[

          // Title

          new Padding(padding: const EdgeInsets.only(
              top: 10.00, left: 10.00),
            child: new Text(
              _feed.title, textAlign: TextAlign.start,),
          ),

          // content

          new Container(
            child: new Text(
              _feed.content, textAlign: TextAlign.start,),
          ),

          // Comments List will go here
          Column(children: commentWidgets,),
        ],
      ),
    ),

Si vous ne disposez pas déjà des données de commentaires et que vous devez les récupérer, utilisez un FutureBuilder pour créer l'interface utilisateur une fois le futur terminé.

15
Derek Lakin