Flutter 如何在单击下拉菜单项后显示自定义值

Flutter 如何在单击下拉菜单项后显示自定义值,flutter,dart,dropdown,Flutter,Dart,Dropdown,当我选择任何特定选项时,该值将显示在下拉列表中 单击特定下拉菜单项后,如何有效更改显示内容 正如您可以从下面的图片中看到的。在品牌下拉列表中,一旦我选择了一个项目,它的值就会显示出来。但是,我想更改显示的值 我如何做到这一点?谢谢 编辑请注意提示属性和此.hintValue 您需要在onChanged事件中设置状态,并将值关联到从onChanged抓取的新值,如下所示 onChanged: (String newValue) { setState(() { this.hin

当我选择任何特定选项时,该值将显示在下拉列表中

单击特定下拉菜单项后,如何有效更改显示内容

正如您可以从下面的图片中看到的。在品牌下拉列表中,一旦我选择了一个项目,它的值就会显示出来。但是,我想更改显示的值

我如何做到这一点?谢谢


编辑请注意提示属性和此.hintValue

您需要在onChanged事件中设置状态,并将值关联到从onChanged抓取的新值,如下所示

onChanged: (String newValue) {
    setState(() {
      this.hintValue = newValue;
    });
  },
而:

 return DropdownButton<String>(
  value: dropdownValue,
  hint: Text("${this.hintValue}"),
  icon: Icon(Icons.arrow_downward),
  iconSize: 24,
返回下拉按钮(
value:dropdownValue,
提示:文本(${this.hintValue}),
图标:图标(图标。向下箭头),
iconSize:24,
完整代码如下所示:

class DropDownWidget extends StatefulWidget {

  DropDownWidget({Key key}) : super(key: key);

  @override
  _DropDownWidgetState createState() => _DropDownWidgetState();
}

/// This is the private State class that goes with MyStatefulWidget.
class _DropDownWidgetState extends State<DropDownWidget> {
  String dropdownValue = 'One';
  String hintValue;
  @override
  Widget build(BuildContext context) {
    return DropdownButton<String>(
      value: dropdownValue,
      hint: Text("${this.hintValue}"),
      icon: Icon(Icons.arrow_downward),
      iconSize: 24,
      elevation: 16,
      style: TextStyle(color: Colors.deepPurple),
      underline: Container(
        height: 2,
        color: Colors.deepPurpleAccent,
      ),
      onChanged: (String newValue) {
        setState(() {
          this.hintValue = newValue;
        });
      },
      items: <String>['One', 'Two', 'Free', 'Four']
          .map<DropdownMenuItem<String>>((String value) {
        return DropdownMenuItem<String>(
          value: value,
          child: Text(value),
        );
      }).toList(),
    );
  }
}
class DropDownWidget扩展了StatefulWidget{
DropDownWidget({Key}):超级(Key:Key);
@凌驾
_DropDownWidgetState createState()=>\u DropDownWidgetState();
}
///这是MyStatefulWidget附带的私有状态类。
类_DropDownWidgetState扩展状态{
字符串dropdownValue='One';
字符串hintValue;
@凌驾
小部件构建(构建上下文){
返回下拉按钮(
value:dropdownValue,
提示:文本(${this.hintValue}),
图标:图标(图标。向下箭头),
iconSize:24,
海拔:16,
样式:TextStyle(颜色:Colors.deepPurple),
下划线:容器(
身高:2,
颜色:颜色。深紫色,
),
onChanged:(字符串newValue){
设置状态(){
this.hintValue=新值;
});
},
物品:[“一”、“二”、“免费”、“四”]
.map((字符串值){
返回下拉菜单项(
价值:价值,
子项:文本(值),
);
}).toList(),
);
}
}

引用自:

谢谢,但这也会更改下拉列表中的值,不是吗?我只想在占位符中替换该值,但在下拉列表中它应该按原样显示。抱歉,我误解了您的问题,我已更新了答案,请注意提示属性和此.hintValue