2
votes

La liste de flutter n'est pas visible

 Widget servicesListview() {
    return Container(
        decoration: new BoxDecoration(color: const Color(0xFFEAEAEA)),
        child: Column(
          children: <Widget>[
            ListView.builder(
                scrollDirection: Axis.vertical,
                itemCount: menServicesList.length,
                itemBuilder: (BuildContext context, int index) {
                  Text(menServicesList[index].name);
                }),
          ],
        ));
  }
I am implementing listview in my flutter project whenever i call this method list is not visible.The page becomes blank,help me to solve this

0 commentaires

4 Réponses :


2
votes

Enveloppez votre ListView dans un widget Expanded ou Container , si vous utilisez un Container , vous devrez définir une hauteur / width.

Cela se produit car ListView n'a pas de propriété hauteur / largeur à modifier.

< EDIT

N'oubliez pas de renvoyer votre texte dans la propriété itemBuilder.


6 commentaires

Veuillez me dire ce que je devrais utiliser à la place de Expanded ou Container


Je souhaite définir la hauteur en fonction du nombre d'éléments dans la liste


Vous pouvez définir une valeur double comme 200.0, 400.0, 500.0 ... dans le paramètre itemExtent, à l'intérieur de ListView.Builder, je pense que cela fonctionnera pour vous


les éléments de la liste seront téléchargés dynamiquement dans ma liste si je définis comment puis-je afficher tous les éléments de la liste


Essayez de définir une valeur d'élément par défautExtend, juste pour voir si tout va bien


Un exemple de code serait apprécié. Je sais que c'est vieux.



3
votes

Il vous manque l'instruction return dans votre itemBuilder

itemBuilder: (BuildContext context, int index) => Text(menServicesList[index].name)),

ou

itemBuilder: (BuildContext context, int index) {
    return Text(menServicesList[index].name);
}),


1 commentaires

itemBuilder: (BuildContext context, int index) => Texte (menServicesList [index] .name)



2
votes

Si vous supprimez le widget Column de ListView, la liste apparaîtra définitivement et si vous souhaitez donner une propriété de décoration à chaque élément d'un ListView.

Widget servicesListview() {
  return ListView.builder(
      scrollDirection: Axis.vertical,
      itemCount: menServicesList.length,
      itemBuilder: (BuildContext context, int index) {
        Container(
            decoration: new BoxDecoration(color: const Color(0xFFEAEAEA)),
            child: Text(menServicesList[index].name)
        );
      })
}


1 commentaires

J'ai essayé le code que vous avez mis à jour, il ne fonctionne pas, la page reste toujours vide



15
votes

J'ai le même problème. Le ListView.builder ne fonctionne pas à l'intérieur d'une Colonne , il faut utiliser le Expanded . Le widget Expanded vous permet d'agrandir et de remplir l'espace avec le widget relatif.

Voir ceci:

child: Column(
   children: <Widget>[
      Expanded(
         child: ListView.builder(
            .......
         )
      )
   ]
)


0 commentaires