我加了一个 AlertDialog
,其中a Checkbox
是,但如果我点击 Checkbox
它没有得到一个钩子。我还添加了另一个 Checkbox
下面 AlertDialog
而这个通过点击就能得到一个钩子。我认为它与 setState()
但我不知道该怎么做。有谁知道解决办法吗?先谢谢你
ListTile(
title: Text("Test"),
trailing: Icon(Icons.fitness_center),
onTap: () {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text("Test"),
content: Column(
children: <Widget>[
Row(
children: <Widget>[
Checkbox(
value: checkBoxValueTheraband,
onChanged: (bool value) {
setState(() {
checkBoxValueTheraband = value;
exerciseChooser();
});
},
),
Text("Theraband"),
],
),),);});})
钩子 设置国家 您在 显示对话框 并不是它 "拥有 "的,这意味着它不会重建其中的任何东西,也不会实际更新 "拥有 "它的父节点的状态。相反,你给它自己的 StatefulBuilder
有自己的 读取数据 作为一个参数。现在当 设置国家 它将调用 建筑商 并改变此小组件中任何东西的状态。
content: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return Column(
children: <Widget>[
Row(
children: <Widget>[
Checkbox(
value: checkBoxValueTheraband,
onChanged: (bool value) {
setState(() {
checkBoxValueTheraband = value;
exerciseChooser();
});
},
),
Text("Theraband"),
]),
]);
}
)