我有一个DropDownButton小部件-
List<DropdownMenuItem<String>> dayValue;
String monthDay;
Widget buildDropdownButtonDay() {
return new DropdownButton<String>(
hint: Text('Choose'),
onChanged: (String changedValue) {
monthDay=changedValue;
setState(() {
monthDay = changedValue;
// print(newValue);
});
},
value: monthDay,
items: dayValue
);
}
我正在initState中使用List.generate方法来像这样向列表dayValue
生成一些值-
void initState() {
// numberontroller.text = 1.toString();
dayValue = List<DropdownMenuItem<String>>.generate(31, (int index) => DropdownMenuItem(child: Text("Day ${index + 1}"),));
super.initState();
}
当我单击dropDownButton时,将成功列出这些值,但是当我从该下拉列表中选择一个值时,value
属性仍显示“ Day 1”。
当我们使用list.generate
方法时,是否可以为DropDownButton小部件设置value属性提供一些建议?
答案 0 :(得分:1)
Add the value property in DropdownMenuItem.
dayValue = List<DropdownMenuItem<String>>.generate(
31,
(int index) => DropdownMenuItem(
value: "Day ${index + 1}", //added
child: Text("Day ${index + 1}"),
)).toList();
super.initState();
答案 1 :(得分:0)
您忘记给dropdownItem赋值,这就是为什么问题发生的原因,只是在生成Dropdown项目列表时放了value参数
dayValue = List<DropdownMenuItem<String>>.generate(31, (int index) =>
DropdownMenuItem(child: Text("Day ${index + 1}"),value:"Day ${index + 1}"));