我正在从 Firestore 流式传输数据并显示 ListView.Builder。 我想为 ListTile 中的每个项目添加一个复选框。我还希望能够选择一个单独的复选框,但这就是问题所在。我尝试了下面的代码,但未选择这些框。如何选择单个复选框并稍后删除所选框的列表?
List<QueryDocumentSnapshot>? items = [];
List<bool>? isChecking = List<bool>.filled(items!.length, false);
StreamBuilder(
stream: ....
builder:(context, snapshot){
return ListView.builder(
itemCount: snapshot.data!.docs.length,
itemBuilder: (context, index){
items = snapshot.data!.docs;
return ListTile(
onTap: () {.... },
leading: CheckBox(
onChanged: (val){
setState(() {
isChecking[index] = val!;
});
}
)
);
}
);
}
)
该复选框将根据传递给其 value 参数的内容显示为选中/未选中,这似乎在您的代码中缺失。尝试更改为:
CheckBox(
value: isChecking[index] // this line added
onChanged: (val){
setState(() {
isChecking[index] = val!;
});
}
)