在flutter里面一般改变值使用的是
setState(() {
// do something
});
但是这个方法对于弹窗来说不起作用,有人说setState((){});这个方法改变的是当前窗口的值,而弹窗不属于当前窗口,所以不生效;
下面是改变弹窗内容的例子
var titleText=”标题改变前“
//弹窗方法
void show(BuildContext context) async {
showDialog(
context: context,
builder: (ctx) {
return StatefulBuilder(builder: (context, state) {
return AlertDialog(
title: Text(titleText),
content: Container(
child: Text("我是内容"),
),
actions: <Widget>[
Container(
child: FlatButton(
child: Text('改变标题文字'),
onPressed: () {
state(() {
titleText = "改变标题之后";
});
},
),
),
],
);
});
});
}
调用弹窗
show(context)