我已经采取了下面的代码从How to create a checkbox using listview检查所有的项目时,一个项目被选中。我如何修复代码不检查所有的项目?
class CheckBoxInListView extends StatefulWidget {
@override
_CheckBoxInListViewState createState() => _CheckBoxInListViewState();
}
class _CheckBoxInListViewState extends State<CheckBoxInListView> {
bool _isChecked = false;
List<String> _texts = [
"InduceSmile.com",
"Flutter.io",
"google.com",
"youtube.com",
"yahoo.com",
"gmail.com"
];
@override
Widget build(BuildContext context) {
return ListView(
padding: EdgeInsets.all(8.0),
children: _texts
.map((text) => CheckboxListTile(
title: Text(text),
value: _isChecked,
onChanged: (val) {
setState(() {
_isChecked = val;
});
},
))
.toList(),
);
}
}
3条答案
按热度按时间c8ib6hqw1#
只需创建一个'_isChecked'变量的列表并使用它。
frebpwbc2#
你应该有一个被选中的列表,并将它们分别分配给每个项目。
kmbjn2e33#
得票最多的答案会进行更正,报告两个错误、已更正的错误和行:
1.类型为“bool?”的值不能赋给类型为“bool”的变量。更正:_isChecked[索引] =值!;
1.必须初始化不可为null的示例字段“_isChecked”。更正:延迟列表已检查;