You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何创建单选下拉列表?

Flutter单选下拉列表修正方案

你的代码核心问题是误用了字符串的map方法——dropdownvalue是单个字符串,它的map会遍历每个字符,根本生成不了正确的下拉选项。下面是修正后的完整代码:

// 先定义所有下拉选项的列表
List<String> dropdownItems = ['Bahrain', 'Saudi Arabia', 'Kuwait', 'United Arab Emirates'];
String dropdownvalue = 'Bahrain'; // 初始值必须在上面的列表里,否则会报错

// 然后是Widget部分
Container(
  width: 308,
  child: DropdownButton<String>(
    value: dropdownvalue,
    icon: const Icon(Icons.keyboard_arrow_down),
    // 用选项列表生成DropdownMenuItem
    items: dropdownItems.map((String item) {
      return DropdownMenuItem(
        value: item,
        child: Text(item),
      );
    }).toList(),
    onChanged: (String? newValue) {
      setState(() {
        dropdownvalue = newValue!;
      });
    },
  ),
)

几个关键注意点:

  • 必须提前定义包含所有可选值的列表变量,不能用单个字符串去调用map
  • 初始值dropdownvalue必须存在于选项列表中,否则Flutter会抛出异常
  • 如果需要调整下拉框的样式,可以添加dropdownColor、style、underline等属性自定义

内容的提问来源于stack exchange,提问作者Priya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:56:07