gpt4 book ai didi

dart - flutter 复选框不起作用

转载 作者:IT王子 更新时间:2023-10-29 06:46:08 25 4
gpt4 key购买 nike

我想在这个小部件对话框中使用 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 方法。谁能解决这个问题?

最佳答案

class _MyHomePageState extends State<MyHomePage>{

//<Here you have to set default value for _groups[index].checked to false/true>
@override
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;
});
},
);
});}

工作示例如下

class _MyHomePageState extends State<MyHomePage> {
bool flagWarranty=false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text(widget.title)),
body: new Container(
padding: new EdgeInsets.all(20.0),
child: new Form(
key: this._formKey,
child: new ListView(
children: <Widget>[
new Checkbox(
value: flagWarranty,
onChanged: (bool value) {
setState((
) {
flagWarranty=value;
});
},
)
],),)));
}}

关于dart - flutter 复选框不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51578824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com