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
相关产品推荐
相关产品推荐

