如何在Flutter中禁用下拉框

4
如何完全禁用下拉列表,使用户无法访问下拉列表,并将颜色更改为灰色。
DropdownButtonFormField<String>(
      value: selected,
      items: ["Value1", "Value2", "Value3"]
          .map(
            (label) => DropdownMenuItem(
              child: Text(label),
              value: label,
            ),
          )
          .toList(),
      onChanged: (value) {
        setState(() => selected = value);
      },
    )

我尝试将onChange设置为null,但整个下拉菜单都消失了。

它在DropdownButton构造函数的官方文档中有描述。 - pskink
@pskink,你能否提供一个链接,因为我没有找到任何禁用部分的地方。 - delmin
1个回答

8
唯一的方法是将onChange设置为null,然后设置disabledHint
DropdownButtonFormField<String>(
      style: TextStyle(color: Colors.grey),
      value: selected,
      disabledHint: Text(selected),  //<-set this one
      items: ["Value1", "Value2", "Value3"]
          .map(
            (label) => DropdownMenuItem(
              child: Text(label),
              value: label,
            ),
          )
          .toList(),
      onChanged: null,
//          (value) {
//          setState(() => selected = value);
//        },
    )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接