gpt4 book ai didi

flutter - 如何在 Flutter 中刷新 AlertDialog?

转载 作者:IT老高 更新时间:2023-10-28 12:34:59 25 4
gpt4 key购买 nike

目前,我有一个带有 IconButtonAlertDialog。用户可以点击 IconButton,每次点击我都有两种颜色。问题是我需要关闭 AlertDialog 并重新打开才能看到颜色图标的状态变化。我想在用户单击时立即更改 IconButton 颜色。

代码如下:

bool pressphone = false;
//....
new IconButton(
icon: new Icon(Icons.phone),
color: pressphone ? Colors.grey : Colors.green,
onPressed: () => setState(() => pressphone = !pressphone),
),

最佳答案

使用 StatefulBuilder 在 Dialog 内部使用 setState 并仅在其中更新 Widget。

showDialog(
context: context,
builder: (context) {
String contentText = "Content of Dialog";
return StatefulBuilder(
builder: (context, setState) {
return AlertDialog(
title: Text("Title of Dialog"),
content: Text(contentText),
actions: <Widget>[
TextButton(
onPressed: () => Navigator.pop(context),
child: Text("Cancel"),
),
TextButton(
onPressed: () {
setState(() {
contentText = "Changed Content of Dialog";
});
},
child: Text("Change"),
),
],
);
},
);
},
);

关于flutter - 如何在 Flutter 中刷新 AlertDialog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51962272/

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