Comment utiliser une liste (list) pour retourner de multiples widgets avec Flutter ?

Le framework utilise un système de widgets pour définir une interface. Tout est un widget, cela va d'une colonne à un élément de texte, en passant par un bouton. C'est l'arborescence entre les widgets et les différentes propriétés utilisées qui vont vous permettre de créer votre application. Afin de gagner du temps et d'avoir un code plus facile à maintenir, il est possible d'utiliser des listes pour créer des widgets. Ce système est notamment très utile pour afficher plusieurs textes identiques les uns à la suite des autres.

Si vous utilisez la version 1.5 du framework et la version 2.3 du langage Dart, ou des versions plus récentes, vous pouvez directement définir plusieurs widgets à partir d'une liste en utilisant l'opérateur "for".

var monMenu = ["Accueil", "Catégorie 1", "Catégorie 2", "Catégorie 3"]; 
child: Column(
  mainAxisAlignment: MainAxisAlignment.center,
  children: [
    for(var menu in monMenu ) Text(menu)
  ],
),

Il existe une autre solution qui a l'avantage d'être acceptée par des versions plus anciennes du framework et du langage. Vous pouvez simplement définir une fonction qui va retourner les widgets. Dans cette fonction, utilisez une boucle avec l'opérateur "for" pour créer les widgets à partir de la liste.

Widget getMenu(List elements)
{
  List menu = new List();
  for(var i = 0; i < elements.length; i++){
    menu.add(new Text(elements[i]));
  }
  return new Column(children: menu);
}

Il est possible de raccourcir davantage le code grâce à la fonction "map()". Cette méthode de la classe "List" permet d'appliquer une fonction à chaque élément contenu dans une liste. On peut ainsi, en une ligne, créer les widgets dans une liste.

Widget getMenu(List elements)
{
  return new Column(children: elements.map((element) => new Text(element)).toList());
}

Android