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;
},
),
);
}
}

我运行了你的代码,看起来一切都是正确的。你介意分享更多的代码吗?像小部件一样,包含下拉按钮