Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter “颤振”下拉列表中的复选框_Flutter_Checkbox_Flutter Layout - Fatal编程技术网

Flutter “颤振”下拉列表中的复选框

Flutter “颤振”下拉列表中的复选框,flutter,checkbox,flutter-layout,Flutter,Checkbox,Flutter Layout,我正在使用下拉菜单中的复选框,但当我选择该框时,除非关闭菜单并再次打开它,否则不会发生任何更改。这是我的代码 items: [ DropdownMenuItem( child: Row( children: <Widget>[ Checkbox( onChanged: (bool value) { setState(() { isSat = value;});}, value: isSat,), Text( daysList[0]['days'],),],),), DropdownM

我正在使用下拉菜单中的复选框,但当我选择该框时,除非关闭菜单并再次打开它,否则不会发生任何更改。这是我的代码

items: [
DropdownMenuItem(
child: Row(
children: <Widget>[
Checkbox(
onChanged: (bool value) {
setState(() {
isSat = value;});},
value: isSat,),
Text(
daysList[0]['days'],),],),),
DropdownMenuItem(
child: Row(
children: <Widget>[
Checkbox(
onChanged: (bool value) {
setState(() {
isFri = value;});},
value: isFri,),
Text(
daysList[6]['days'],),],),)
].toList(),
onChanged: (value) {},),
项目:[
下拉菜单项(
孩子:排(
儿童:[
复选框(
一旦更改:(布尔值){
设置状态(){
isSat=value;});},
价值:isSat,),,
正文(
daysList[0]['days'],),],),,),
下拉菜单项(
孩子:排(
儿童:[
复选框(
一旦更改:(布尔值){
设置状态(){
isFri=value;});},
值:isFri,),
正文(
daysList[6]['days'],),],),)
].toList(),
一旦更改:(值){},),

您需要使用
StatefulBuilder
包装所有复选框。您正在使用的
setState
仅适用于包含所有下拉菜单的小部件的状态,而不适用于复选框的状态

以下是您的操作方法:

StatefulBuilder(
生成器:(BuildContext上下文,StateSetter StateSetter){
返回复选框(
一旦更改:(布尔值){
//注意这里我们从StatefulBuilder中调用stateSetter!
国家制定者(){
//倒数
isFri=!isFri;
});
},
值:isFri,
);
}),

您必须为每个
复选框
小部件执行此操作。

您需要使用
StatefulBuilder
包装所有复选框。您正在使用的
setState
仅适用于包含所有下拉菜单的小部件的状态,而不适用于复选框的状态

以下是您的操作方法:

StatefulBuilder(
生成器:(BuildContext上下文,StateSetter StateSetter){
返回复选框(
一旦更改:(布尔值){
//注意这里我们从StatefulBuilder中调用stateSetter!
国家制定者(){
//倒数
isFri=!isFri;
});
},
值:isFri,
);
}),

您必须为每个
复选框
小部件执行此操作。

您使用的是无状态小部件吗?不,我使用的是StatefulWidget,您使用的是无状态小部件吗?不,我使用的是StatefulWidget,谢谢。。