Flutter 从 ListViewBuilder 中选择一个复选框

问题描述 投票:0回答:1

我正在从 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!;
                   });
               }
             )
           );
        }
         
     );
   }
)
flutter google-cloud-firestore
1个回答
0
投票

该复选框将根据传递给其 value 参数的内容显示为选中/未选中,这似乎在您的代码中缺失。尝试更改为:

CheckBox(
  value: isChecking[index] // this line added
  onChanged: (val){
    setState(() {
      isChecking[index] = val!;
    });
  }
)
© www.soinside.com 2019 - 2024. All rights reserved.