颤振:定制的下拉按钮功能不显示所选值

时间:2020-03-19 14:46:19

标签: flutter dart drop-down-menu dropdownbutton

我正在尝试制作一个自定义函数,该函数返回一个下拉菜单。该函数带有3个参数:menuTitle,selectedValue和字符串列表。

SELECT

“下拉菜单”显示所有可用选项,但是选择一个选项后,我只能看到提示文本,而看不到所选值。我将不胜感激。

1 个答案:

答案 0 :(得分:0)

要让您的下拉列表反映您的selectedValue,它应该是状态的一部分。因此,请按照下面的代码所示进行操作。我已经测试了此代码及其对我的工作。


class _MyAppState extends State<MyApp> {

  List<String> cities= ['Rome', 'London', 'Paris'];
//Initialize your selectedItem to selectedCity
//default selectedCity
  String selectedCity='Rome';
  String title='Select a city';



  @override
  Widget build(BuildContext context) {
    Color color=Colors.blueAccent;
    int x=color.value;

    return MaterialApp(

      home: Scaffold(
        body: Column(
          children: <Widget>[_buildDropdown("Title","",cities)],
        ),
      ),
    );
  }

  Widget _buildDropdown(
      String menuTitle, String selectedItem, List<String> list) {

    return Container(
      margin: EdgeInsets.all(10.0),
      decoration: BoxDecoration(
          border: Border.all(color: Colors.grey[300]),
          borderRadius: BorderRadius.circular(10.0)),
      child: DropdownButtonHideUnderline(
        child: ButtonTheme(
          alignedDropdown: true,
          child: DropdownButton<String>(
            isExpanded: true,
            hint: Text(
              menuTitle.toUpperCase(),
            ),
            value: selectedCity,
            items: list.map((String val) {
              return DropdownMenuItem(
                value: val,
                child: Text(
                  val.toUpperCase(),
                ),
              );
            }).toList(),
            onChanged: (String value) {
              setState(() {
                selectedCity = value;
              });
            },
          ),
        ),
      ),
    );
  }
}