我正在尝试使用下拉按钮让用户从选项列表中进行选择,但是在做出选择之后,下拉按钮仍然显示提示。我认为有关setState的内容并未更新下拉按钮。
value: skillChoice,
items: listDrop,
hint: Text("Choose Skill"),
onChanged: (value) {
setState(() {
skillChoice = value;
});
},
),
以下是在代码前面声明的变量:
List<DropdownMenuItem<int>> listDrop = [];
int skillChoice = null;
有人可以让我知道为什么它没有更新吗?
答案 0 :(得分:0)
我认为将skillChoice设置为null首先会禁用下拉菜单。
答案 1 :(得分:0)
如果显示了如何实现DropDownButton的完整代码段,那会更好。但是这是我实现我的方法:
// This is the initial value that will be selected on the DropDownMenu by default
String choice = '1';
// This is the List of String (or whatever data type you want) that will make up the
Drop Down Menu Item options. NOTE: That the String value of 'choice' ('1') is also present in the List of choices ('1')
List<String> choices = [
'1',
'2',
'3',
'4',
'5',
];
DropdownButton<String>(
value: choice,
icon: Icon(Icons.add),
onChanged: (String newValue) {
setState(() => choices = newValue);
},
items: choices.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(
value,
)
);
}).toList(),
),
现在应该可以正常工作。