gpt4 book ai didi

android - Flutter Switch 在 Modalbottomsheet 中不起作用

转载 作者:行者123 更新时间:2023-12-04 23:58:45 25 4
gpt4 key购买 nike

我的设置:

class Start_Page extends StatefulWidget {
@override
StartPageState createState() => StartPageState();
}

class StartPageState extends State<Start_Page> {
@override
Widget build(BuildContext context){
return Scaffold(
body: Container(
child: ElevatedButton(
style: ButtonStyle(),
onPressed: () {
createUserModalBottomSheet(context);
},
child: Text("Start"),
)
)
);
}
}

void createUserModalBottomSheet(context){
showModalBottomSheet(context: context, builder: (BuildContext bc) {
return Container(
child: Switch(value: true, onChanged: (value) => {value = !value}, activeColor:
Colors.grey)
);
}
}

问题是开关不会改变他的值。 Modalbottomsheet 出现但不会更新更改/状态。有人知道解决方案吗?

最佳答案

使用StatefulBuilder更新 showModalBottomSheet 中的 UI。第二个问题是您需要使用 bool 变量来保存值。

class StartPageState extends State<Start_Page> {
bool switchValue = false;
///......
void createUserModalBottomSheet(context) {
showModalBottomSheet(
context: context,
builder: (BuildContext bc) {
return StatefulBuilder(
builder: (context, setStateSB) => Container(
child: Switch(
value: switchValue,
onChanged: (value) {
setState(() {
// update parent UI
switchValue = value;
});
setStateSB(() {
// update inner dialog
switchValue = value;
});
},
activeColor: Colors.grey),
),
);
});
}

@override
Widget build(BuildContext context) {
.........

关于android - Flutter Switch 在 Modalbottomsheet 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70567296/

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