我有 val list = buildList {
if (city.isNullOrBlank()) add("Invalid city")
if (state.isNullOrBlank()) add("Invalid state")
if (country.isNullOrBlank()) add("Invalid country")
if (zip.isNullOrBlank()) add("Invalid zip code")
}
个 ListView
的尾随 ListTile
。我的问题是当我切换任何开关时,其他开关也会切换,尽管它们不应该。
外观如下:
这是代码(删除了杂乱的内容):
Switch
答案 0 :(得分:1)
发生这种情况是因为 List.filled()
创建了一个列表,其中所有元素实际上都使用相同的对象。换句话说,您的 scheduleList 一遍又一遍地拥有相同的对象,而不是不同的对象。要为每个索引创建一个新对象,请改用 List.generate()
。
只需将您的 //Init list of programs
代码替换为此代码即可:
//Init list of programs
List<ScheduleProgram> scheduleList = List<ScheduleProgram>.generate(
10,
(index) => ScheduleProgram(
enabled: false,
isStart: false,
time: TimeOfDay(minute: 0, hour: 0),
duration: 0,
dow: [false, false, false, false, false, false, false]),
growable: false);