如何更改Flutter gridview.count复选框列表的状态?

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

我使用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生成了一个复选框列表。现在,我想分别更改每个复选框的状态。能否请您告诉我如何更改复选框“网格视图”的值...

flutter checkbox gridview
2个回答
0
投票

您可以将复选框的值传递给函数,从列表项中,您可以识别每个项目并相应地更改值。小部件复选框(字符串标题,bool boolValue){返回列(mainAxisAlignment:MainAxisAlignment.center,儿童:[文字(标题),复选框(值:boolValue,onChanged :(布尔值){setState((){开关(标题){案例HOT_SERVE:hotServe =值;休息;


0
投票

将您的Pldata卡小部件更改为有状态类,并在其构造函数中传递必要的值。另外,如果您已经有了pllistdata列表,那么在使用builder构建gridview时会很好。我修改了您的代码。检查一下是否适合您。

© www.soinside.com 2019 - 2024. All rights reserved.