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

Flutter DropdownButton点击选项后不更新显示问题求助

解决Flutter DropdownButton选中后显示不更新的问题

问题出在你给DropdownButton的value属性固定写死成了experienceYears.first——哪怕你在onChanged里更新了experienceTime,但这个变量根本没和下拉框的显示值绑定,所以不管选什么,界面只会一直显示第一个选项。

按下面的步骤修改就能解决:

  • 初始化experienceTime时,直接赋值为experienceYears.first,保证初始状态显示正确
  • 把DropdownButton的value从experienceYears.first改成experienceTime,让下拉框的显示值和选中状态挂钩

修正后的完整代码:

String experienceTime = "";
var experienceYearsRepository = ExperienceYearsRepository();
var experienceYears = [];

@override
void initState() {
  experienceYears = experienceYearsRepository.returnExperienceYears();
  // 初始化时把默认值设为第一个选项
  experienceTime = experienceYears.first;
  super.initState();
}

DropdownButton(
  isExpanded: true,
  // 这里改成绑定experienceTime
  value: experienceTime,
  items: experienceYears
      .map((experienceYear) => DropdownMenuItem(
            value: experienceYear,
            child: Text(experienceYear.toString()),
          ))
      .toList(),
  onChanged: (selectedExperienceTime) {
    setState(() {
      debugPrint(selectedExperienceTime as String?);
      experienceTime = selectedExperienceTime.toString();
    });
  },
),

这样修改后,当你选中某个选项时,experienceTime会被更新,DropdownButton的value跟着变化,界面就会正确显示你选中的内容了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 07:14:56