我有一个AlertDialog
使用该showDialog()
方法的展示,在其中我有一个Column
包含两个Text
小部件,其中一个是不可见的。我在这里尝试做的是使用AlertDialog
操作按钮更改文本的可见性。
我最初创建的Column
是这样的:
bool textVisibility = false;
var column = Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Text("Visible Text"),
Visibility(
visible: textVisibility,
child: Text("Invisible Text!"),
)
],
);
然后我把它包括在我的里面AlertDialog
:
showDialog(
context: context,
builder: (context) {
return StatefulBuilder(
builder: (context,StateSetter dialogState) {
return AlertDialog(
content: column,
actions: <Widget>[
FlatButton(
child: Text("Yes"),
onPressed: () {
dialogState(() {
textVisibility = true
});
},
),
],
);
},
);
}
)
这显然行不通,因为dialogState()
它将更新对话框的数据,而不是其Column
子项。所以我的问题是如何Column
从AlertDialog
动作按钮调用内部更新?