首页 > 解决方案 > 在对话框中设置复选框模式的状态

问题描述

这是我使用 CheckBoxModal 在对话框中创建复选框列表的示例,但是,单击复选框按钮后,我无法立即获得反映。

这是代码

Container(
      height: 180,
      child: ListView(
          shrinkWrap: false,
          physics: NeverScrollableScrollPhysics(),
          children: [
            Wrap(
              crossAxisAlignment: WrapCrossAlignment.center,
              alignment: WrapAlignment.center,
              children: [
                ...getinstruction
                    .map(
                      (item) => Container(
                        width: 150,
                        child: StatefulBuilder(builder: (context, setState) {
                          return ListTile(
                            onTap: () {
                              onItemClicked(item);
                            },
                            leading: Checkbox(
                              value: item.value,
                              onChanged: (bool? value) {
                                onItemClicked(item);
                              },
                            ),
                            title: Text(item.title),
                          );
                        }),
                      ),
                    )
                    .toList(),
              ],
            ),
          ]),
    );

标签: flutter

解决方案


您需要使用setState它来重建

onChanged: (bool? value) {
    setState(() => onItemClicked(item));
},

但是,您需要确保在函数上或函数内item.value更新。onItemClickedonChanged

请参阅颤振网站上的示例以了解如何完成


推荐阅读