J'essaie d'ajouter des données à l'aide de la boucle for dans gridview mais cela montre une erreur. Voici mon code pour le composant
return new GridView.count(
crossAxisCount: 2,
padding: const EdgeInsets.all(10.0),
crossAxisSpacing: 10.0,
mainAxisSpacing: 10.0,
children: <Widget>[getList()],
);
code getList ()
List<Widget> getList() {
List<Widget> childs = [];
for (var i = 0; i < 10; i++) {
childs.add(new ListItem('abcd ' + $i));
}
return childs;
}
Mais il montre une erreur de temps de compilation.
The element type 'List<widget>' can't be assigned to the list type 'Widget'
Ici, vous enveloppez une liste en tant que liste
children: <Widget>[getList()],
Cela devrait plutôt être
children: getList(),
Comme la réponse n'était pas satisfaisante pour moi, j'ai donc trouvé une autre solution.
Flutter vous donne la possibilité d'écrire des conditions sur une seule ligne également dans le graphique, vous pouvez donc insérer un cycle sur une seule ligne, puis insérer les autres widgets différents. Ceci est un exemple pratique en réponse à la question principale:
Column(
children: <Widget>
[
for (int i = 0;
i < workouts.series.length;
i++)
"//CREATE N YOUR WIDGETS//",
new Text(
"${workouts.series.length} x ${exerciseWorkout.repsToDo} ",
style: TextStyle(
color: Colors.black87,
fontSize: 16,
fontWeight: FontWeight.bold),
)
],
)