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

Flutter中用户选中Dropdownlist选项后如何禁用该下拉列表

实现方案
  • 首先在当前页面的State类中新增一个布尔状态字段,用来控制下拉框的可用状态,默认值为false(即可正常点击选择):
bool _isDropdownDisabled = false;
  • 核心逻辑:Flutter中DropdownButton的onChanged属性被赋值为null时,组件会自动进入禁用状态,无法点击展开下拉列表。我们只需要在用户选中条目后将控制状态改为true,即可实现需求。
  • 改造后的完整代码如下:
child: DropdownButton<Partner>(
  value: _selectedLab, // 用户选中的下拉条目值
  hint: Text("Select Lab"),
  isExpanded: true,
  // 可自定义禁用状态下的提示文本
  disabledHint: Text("已选择实验室,不可修改"),
  items: data.map((Partner data) =>
          DropdownMenuItem<Partner>(
            child: Text("${data.partnerName}"),
            value: data,
          )).toList().cast<DropdownMenuItem<Partner>>(),
  // 根据禁用状态判断是否赋值onChanged回调
  onChanged: _isDropdownDisabled ? null : (val) {
    setState(() {
      _selectedLab = val!;
      encLabId = val.encPartnerId;
      getTestByLabResult = getTestByLab();
      // 选中后将下拉框设置为禁用状态
      _isDropdownDisabled = true;
    });
  },
),

如果后续需要重新启用下拉框,只需要在对应业务逻辑中调用setState将_isDropdownDisabled改回false即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:48:00