【发布时间】:2019-01-05 19:26:50
【问题描述】:
我想在这个小部件对话框中使用CheckboxListTile 构建一个复选框,但是当我点击复选框时,复选框上的checked 不会改变。
这是我的代码:
Future<Null> _showGroupDialog(BuildContext context) async {
await showDialog(
context: context,
builder: (BuildContext dialogContext) =>
Dialog(child: _buildCheckboxGroups(context)));
}
Widget _buildCheckboxGroups(BuildContext context) {
List<Widget> childrens = List.generate(_groups.length, (index) {
return CheckboxListTile(
title: Text(_groups[index].name),
value: _groups[index].checked,
onChanged: (bool val) {
setState(() {
_groups[index].checked = val;
});
},
);
});
return Container(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: childrens,
));
}
顺便说一句,当我点击复选框时会调用 onChange 方法。谁能解决这个问题?
【问题讨论】:
-
参见github.com/flutter/flutter/issues/15194 - 您正在调用 setState 来更新构建对话框的小部件,而不是对话框本身。
标签: dart flutter flutter-layout flutter-dependencies