我使用flutter gridview.count生成了一个复选框列表。现在,我想分别更改每个复选框的状态。
您能告诉我如何更改复选框的值吗?>
网格视图
child: new GridView.count( crossAxisCount: 2, shrinkWrap: true, childAspectRatio: 8.0, children: List.generate(pllistdata.length, (index) { return Pldata(pllistdata[index], index); }), ),
返回的小部件
Card Pldata(String plname, int id) { return Card( child: Padding( padding: const EdgeInsets.all(10.0), child: new Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: <Widget>[ Text( '$plname', style: TextStyle( fontWeight: FontWeight.bold, color: Colors.black54, fontSize: 16.0), ), CircularCheckBox( value: pl_status, materialTapTargetSize: MaterialTapTargetSize.padded, onChanged: (x) { setState(() { prefs.setStringList('PL', sflist); }); }, activeColor: Colors.red[800], inactiveColor: Colors.grey, ) ], ), ), );
}
我使用flutter gridview.count生成了一个复选框列表。现在,我想分别更改每个复选框的状态。能否请您告诉我如何更改复选框“网格视图”的值...
您可以将复选框的值传递给函数,从列表项中,您可以识别每个项目并相应地更改值。小部件复选框(字符串标题,bool boolValue){返回列(mainAxisAlignment:MainAxisAlignment.center,儿童:[文字(标题),复选框(值:boolValue,onChanged :(布尔值){setState((){开关(标题){案例HOT_SERVE:hotServe =值;休息;
将您的Pldata卡小部件更改为有状态类,并在其构造函数中传递必要的值。另外,如果您已经有了pllistdata列表,那么在使用builder构建gridview时会很好。我修改了您的代码。检查一下是否适合您。