我有这个ListView.builder
和简单的Cards
,它是用bloc
构建的,就像这样:
return ListView.builder(
itemCount: snapshot.data.documents.length,
itemBuilder: (BuildContext context, int index) {
var snap = snapshot.data.documents[index];
...
在此列表中,我有checkbox
像这样:
class _MyHomePageState extends State<MyHomePage> {
bool _isChacked = false;
...
Card(
elevation: 10.0,
child: Container(
width: 60.0,
height: 50.0,
child: Checkbox(
activeColor: Colors.red,
value: _isChacked,
onChanged: (value) {
setState(() {
_isChacked = value;
print(value);
});
},
),
),
),
如果我单击我会看到复选框,以更改价值,但不幸的是,一次如何定位自己的每个人?
我想到了List
或Map
,但我不知道如何使用它。
保持复选框的状态也不重要,因为将值保存到我知道的数据库中,但是我只是在本地需要它。
答案 0 :(得分:0)
因为所有复选框都取决于_isChacked值。如果只希望复选框可以切换,则应使用
`List _selected_box = List(); ...
child: Checkbox(
activeColor: Colors.red,
value: _selected_box.contains(index),//index is the position of the checkbox
onChanged: (value) {
setState(() {
// remove or add index to _selected_box
if(_selected_box.contains(index)) _selected_box.remove(value);
else _selected_box.add(value);
print(value);
});
},
),