5
votes

ListView.builder () dans Flutter

considérez la fonction build () suivante

 ListTile(
    title: Text("$i"),
  );

si le numberTruthList est

List numberTruthList = [true, true, true, true, true, true];

alors le résultat est entrez la description de l'image ici

et si le numberTruthList est p >

List numberTruthList = [false, true, true, true, true, true];

le résultat est entrez la description de l'image ici

Je veux que la sortie soit une ListView avec les éléments

Widget build(BuildContext context){
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: ListView.builder(
            itemCount: 6,
              itemBuilder: (context, i){
                if(numberTruthList[i]){
                  return ListTile(
                    title: Text("$i"),
                  );
                }
              },
          ),
        )
      ),
    );
  }

pour les valeurs de i tel que numberTruthList [i] est vrai, quel devrait être le code


0 commentaires

3 Réponses :


12
votes
ListView.builder(
  itemCount: 6,
  itemBuilder: (context, i) {
    return numberTruthList[i]
      ? ListTile(
          title: Text(numberTruthList[i].toString()),
        )
      : Container(
          height: 0,
          width: 0,
        );
   },
)

4 commentaires

il y a un énorme vide dans l'espace des ListTiles vides. Comment supprimer cela?


Cet énorme écart est vide ListTile () . Remplacez-le par Container a 0 hauteur et 0 largeur.


Veuillez accepter la réponse.


Modifié la réponse.



0
votes

utilisez Wrap () dans le cas contraire.

Container encapsule le contenu lorsqu'il y a du contenu et correspond au parent lorsqu'il n'y a pas de contenu.

Wrap enveloppe le contenu quoi qu'il arrive.


0 commentaires

-1
votes

Le itemBuilder doit toujours renvoyer un Widget non nul. Vous pouvez le vérifier ici .


0 commentaires