我的应用程序中有几个复选框,当用户选中一个复选框时,我希望其他复选框未选中。通常这一点都不困难,但是问题是我在地图中有布尔值和复选框的标题。如何取消选中用户选中的复选框以外的所有复选框?
这是地图:
Map<String, bool> filterOptions = {
'Test1': false,
'Test2': false,
};
这是我“构建”复选框的代码:
ListView(
scrollDirection: Axis.vertical,
shrinkWrap: true,
children: filterOptions.keys.map((String key) {
return CheckboxListTile(
title: Text(key),
value: filterOptions[key],
onChanged: (bool value) {
setState(() {
filterOptions[key] = value;
});
},
);
}).toList(),
),
您要找的不是复选框,而是单选按钮。您一次只能选择一个单选按钮,而不必手动检查状态。但是,如果您坚持使用复选框,则可以遍历地图
filterOptions.forEach((key, value) => filterOptions[key] = false);
如果将value设置为false,则只需更改值的副本。您可能会考虑删除地图并使用单个int selectedBox
变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句