这是我的资料。
String selected = "ONE",
final List<DropdownMenuItem<String>> types = [
DropdownMenuItem(value: "ONE", child: Text("ex1")),
DropdownMenuItem(value: "TWO", child: Text("ex2")),
...
];
@override
Widget build(context) => Scaffold(
body: Column(
...
TextButton(
onPressed: () {
context: context,
builder: (context) => AlertDialog(
content: SizedBox(
...
DropdownButton(
items: types,
value: selected,
onChanged: (String? value) {
selected = value!;
setState(() {
selected;
});
})
小部件按预期构建,但是在选择新值后下拉菜单不会更新。
- 确保全局定义了
selected
等价项 - 使用
setState()
这两种方法我都试过了,但似乎都不能让它工作。我可以确认selected被设置为等于value,只是没有反映在UI上。
1条答案
按热度按时间yrwegjxp1#
使用
StatefulBuilder
更新对话框内的用户界面。