Flutter 不显示所选值的下拉列表 下拉按钮( 提示:文本('Select Priority Level',样式:GoogleFonts.dosis(),), dropdownColor:Colors.bluegray, 值:selectedValue, 一旦更改:(newValue){ 设置状态(){ selectedValue=newValue; 优先级=所选值; }); }, items:listPriority.map((valueItem){ 返回下拉菜单项( 值:valueItem, 子项:文本(valueItem), ); }).toList(), )
但是,当我选择一个下拉字段中未显示的项目时,所选值将被存储。如何修复此问题?以下是我所做的示例代码 初始化变量Flutter 不显示所选值的下拉列表 下拉按钮( 提示:文本('Select Priority Level',样式:GoogleFonts.dosis(),), dropdownColor:Colors.bluegray, 值:selectedValue, 一旦更改:(newValue){ 设置状态(){ selectedValue=newValue; 优先级=所选值; }); }, items:listPriority.map((valueItem){ 返回下拉菜单项( 值:valueItem, 子项:文本(valueItem), ); }).toList(), ),flutter,Flutter,但是,当我选择一个下拉字段中未显示的项目时,所选值将被存储。如何修复此问题?以下是我所做的示例代码 初始化变量 DropdownButton( hint: Text('Select Priority Level', style: GoogleFonts.dosis() ,), dropdownColor: Colors.blueGrey, value: selectedValue, o
DropdownButton(
hint: Text('Select Priority Level', style: GoogleFonts.dosis() ,),
dropdownColor: Colors.blueGrey,
value: selectedValue,
onChanged: (newValue){
setState(() {
selectedValue = newValue;
priority = selectedValue;
});
},
items: listPriority.map((valueItem){
return DropdownMenuItem<String>(
value: valueItem,
child: Text(valueItem),
);
}).toList(),
)
int _selectedjobcategory;
代码
DropdownButton(
hint: Text('Select Priority Level', style: GoogleFonts.dosis() ,),
dropdownColor: Colors.blueGrey,
value: selectedValue,
onChanged: (newValue){
setState(() {
selectedValue = newValue;
priority = selectedValue;
});
},
items: listPriority.map((valueItem){
return DropdownMenuItem<String>(
value: valueItem,
child: Text(valueItem),
);
}).toList(),
)
int _selectedjobcategory;
这里有一个自定义的下拉列表类,你可以在任何地方调用它
Flexible(
flex: 0,
child: Padding(
padding: EdgeInsets.only(left: 10, right: 10, top: 15),
child: Container(
width: double.infinity,
height: 60,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(5),
border: Border.all(color: Colors.blueGrey)),
child: DropdownButtonFormField(
isExpanded: true,
itemHeight: 50,
icon: Icon(Icons.arrow_drop_down),
iconSize: 40,
// underline: SizedBox(),
hint: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Select Enquiry Type",
style: TextStyle(fontSize: 15, color: Colors.black),
),
),
value: _selectedjobcategory,
onChanged: (newValues) {
setState(() {
_selectedjobcategory = newValues;
});
},
items: jobcategory.map((jobs) {
return DropdownMenuItem(
child: Padding(
padding: const EdgeInsets.all(8.0),
child:
Text(jobs.name, style: TextStyle(fontSize: 15)),
),
value: jobs.id,
);
}).toList(),
),
),
),
),
导入“包装:颤振/材料.省道”;
//忽略:必须是不可变的
类DropDownClass扩展了无状态小部件{
变量提示;
var_val;
列表_List=新列表();
布尔乌边界;
颜色_underLineColor,_dropDownColor;
列表获取列表=>\u列表;
动态函数(动态)\ u侦听器;
DropDownClass({List List,
var提示,
颜色下划线颜色,
颜色下拉颜色,
颜色文本颜色,
双倍大小,
布尔图标,
瓦尔瓦尔,
int类型,
布尔边界=真,
动态函数(动态)侦听器,})
:_list=list,
_提示,
_下划线颜色=下划线颜色,
_dropDownColor=dropDownColor,
_val=val,
_边界=边界,
_监听器=监听器;
@凌驾
小部件构建(构建上下文){
返回DropdownButtonHideUnderline(
子项:DropdownButtonFormField(
值:_val,
dropdownColor:_dropdownColor??Colors.white,
装饰:_border==true?输入装饰(
enabledBorder:UnderlineInputBorder(
边界边(
颜色:_underLineColor??主题
.of(上下文)
.hintColor,
宽度:1.0,
),
)
):输入装饰(
边框:InputBorder.none,
fillColor:Colors.grey[400],
填写:正确),
是的,
提示:文本(_hint),
项目:list.map((项目){
返回下拉菜单项(
价值:项目,,
子项:新文本(项,),
);
}).toList(),
一旦更改:(值){
_val=值;
如果(_listener!=null)_listener.call(value);
//返回val;
},
),
);
}
}
我运行了你的代码,看起来一切都是正确的。你介意分享更多的代码吗?像小部件一样,包含下拉按钮