FlutterでListを表示させる
表示させたいListを作成。plist = [Row(), Row(), Row(), ...]の状態になる。
List<Widget> _makeWidgetList(list, stateArr, provider) {
var resultList = List<Widget>();
for (int i = 0; i < list.length; i++) {
resultList.add(Row(
children: [
Checkbox(
value: stateArr[i],
onChanged: (bool value) {
provider.onChangeCheckbox(i, value);
},
),
Text(list[i]),
],
));
}
return resultList;
}
List<Widget> plist =
_makeWidgetList(xxxList, xxxStateArr, xxxProvider);
plistの表示部分は以下の通り。for文を使うことができる。
for (int i = 0; i < plist.length; i++) plist[i],
Column(
children: <Widget>[
for (int i = 0; i < plist.length; i++) plist[i],
SizedBox(
width: 320,
height: 50,
child: TextField(
decoration: InputDecoration(hintText: 'その他'),
controller: xxxController,
onChanged: (text) {
xxxProvider.setText('other', text);
},
),
),
],
),