【发布时间】:2020-07-13 13:06:03
【问题描述】:
我想创建一个小部件,它将基于地图上的循环生成多个 CheckboxListTiles。每个条目的键是一个 ProfessionalService,它的值是一个布尔值(表示该框是否被选中)。 ProfessionalIdentityModel 拥有一个 ProfessinalService 列表。我想遍历地图以创建多个 CheckBoxTiles。
我的代码看起来像:
Widget serviceTile(ProfessionalIdentityModel professionalIdentityModel) {
Map boolServiceMap = {
for (var service
in professionalIdentityModel.professionalServices.services)
service: false
};
return Column(
children: <Widget>[
boolServiceMap.forEach((service, boolean) {
CheckboxListTile(
title: Text(service.name),
value: false,
onChanged: (bool value) {
setState(() {
service[boolean] = value;
});
},
);
})
],
);
} 我想根据我的 ProfessionalService 列表创建我的地图。必须在返回我的小部件之前完成。问题是仅填充了 1 个 CheckBoxTiles,因为我的地图仅包含 1 个元素。你能找到我的地图包含所有元素的解决方案吗?
你能帮帮我吗?非常感谢。
【问题讨论】:
-
我不明白你想要什么,你能详细说明一下吗?
This is the case but for only 1 element是什么意思?那么The list iterates only once and then return the column.这就是你想要的吗?似乎没用。 -
@mFeinstein 抱歉,我编辑了我的帖子。希望澄清。
-
既然你确定
professionalIdentityModel.professionalServices.services有不止一项,我不知道为什么它只迭代一次。 -
@mFeinstein 感谢您尝试帮助我。当我使用这个
return Column( children: <Widget>[ for (var service in professionalIdentityModel.professionalServices.services) CheckboxListTile( title: Text(service.name), value: false, onChanged: (bool newValue) { setState(() {}); }, ) ], );时,checkboxliststyles 会填充所有元素。 -
哦,好吧,我知道为什么第一个没有迭代,我会发布它作为解释它的答案。