gpt4 book ai didi

dart - 动态更改 AlertDialog 标题 (showDialog())

转载 作者:IT王子 更新时间:2023-10-29 06:37:14 25 4
gpt4 key购买 nike

我正在向用户显示一个对话框,我想在单击对话框的肯定按钮时更改对话框的标题,但我该怎么做。

由于对话框已经在屏幕上可见,因此 setState() 将无法执行任何操作。

代码:

String title = "Old Title" // member variable

RaisedButton(onPressed: (){
showDialog(context: context, builder: (context) {
return AlertDialog(title: Text(title), actions: <Widget>[FlatButton(onPressed: () {
setState(() => title = "New Title");
}, child: Text("Change"))],);
});
}, child: Text("Change"),)

最佳答案

您可以这样做 - 无需创建额外的小部件

RaisedButton(
onPressed: () {
showDialog(
context: context,
builder: (context) {
StreamController<String> controller = StreamController<String>.broadcast();
return AlertDialog(
title: StreamBuilder(
stream: controller.stream,
builder: (BuildContext context, AsyncSnapshot<String> snapshot){
return Text(snapshot.hasData ? snapshot.data : 'Title');
}),
actions: [
FlatButton(
onPressed: () {
controller.add('New Title');
},
child: Text('Change'))
],
);
});
},
child: Text('Change'),
);

关于dart - 动态更改 AlertDialog 标题 (showDialog()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53123244/

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