以下代码中出现错误。当我在value
和onChanged
参数上设置null时,它显示下拉菜单,但下拉菜单不起作用。
_genderField() {
return DropdownButtonFormField<String>(
hint:Text('Gender'),
items: ['Male', 'Female'].map((String gender) {
DropdownMenuItem<String>(
child: Text(gender),
value: gender,
);
}).toList(),
value: 'Male',
onChanged: (newValue) {
print(newValue);
},
);
}
如果onChanged回调为空,或者items的列表为空,则Dropdown按钮将被禁用,即其箭头将显示为灰色,并且将不响应输入。” >
但是,如果您打算首先显示空白项目,则可以在项目中添加空字符串。您可以添加验证器以限制用户至少选择非空值。
_genderField() {
return DropdownButtonFormField<String>(
hint:Text('Gender'),
items: ["",'Male', 'Female'].map((String gender) {
DropdownMenuItem<String>(
child: Text(gender ?? ""),
value: gender,
);
}).toList(),
value: selectedValue,
validator: (value) => (value.length > 0) ? null : "This field is required",
onChanged: (newValue) {
setState((){
selectedValue = newValue;
});
print(newValue);
},
);
}