我想控制一个下拉按钮,并使其无法使用按钮点击。
有没有办法让它禁用。基本上不允许它能够改变。
new DropdownButton(
value: animalName,
items: animals.map(
(String value) {
return new DropdownMenuItem<String>(
value: value,
child: new Text('$value'),
);
},
).toList(),
onChanged: (value) {
setState(() {
animalName = value;
});
},
),
这是我目前在下拉按钮上使用的代码,但我不能禁用它。
9条答案
按热度按时间agxfikkp1#
在
DropdownButton
文档中找到:如果items或onChanged为null,则按钮将被禁用,向下箭头将变灰,并且将显示disabledHint(如果提供)
vsdwdz232#
这不是你想听到的,但我不认为目前有一个简单的方法。我试验了简单地删除所有项目,这导致了一个不错的小崩溃。也许值得提出一个问题,与Flutter的人在github上...
现在有一种替代方法可能对您来说已经足够好了。如果您将DropdownButton Package 在IgnorePointer中,当您希望禁用它时,可以将IgnorePointer的
ignoring
属性更改为true。这样,如果用户点击它,它不会做任何事情。
但是您可能希望以某种方式向用户指示它也被禁用了,比如设置提示文本(因为它是灰色的)。
bxpogfeg3#
如果将
onChanged
设置为空,则可以禁用DropdownButtonFormField
或DropdownButton
,如果希望下拉列表仍显示选定的值,则必须设置disabledHint
。例如:x7yiwoj44#
只需使用**
IgnorePointer
小部件将其打包,即可禁用DropdownButton
**mbzjlibv5#
如果items或onChanged为null,则按钮将被禁用,向下箭头将变灰,并且将显示disabledHint(如果提供)
因此,应该可以这样做:
5ktev3wc6#
好的,我找到了一个让我满意的技巧我希望它隐藏/显示DropdownButton取决于CheckboxListTile
在StatefulWidget类中,首先创建一个函数,例如:
现在正在建造中
现在,每次您更改enable时,它将显示和隐藏DropdownButton
5kgi1eie7#
对于禁用 onChange:空值
用于禁用标题disabledHint:文本(“您的提示文本”)
oprakyz78#
//添加小部件'AbsorbPointer'真禁用,假启用
//是否可编辑= true
bxgwgixi9#
简单: