一、说明
其实如果只是要让按钮不响应事件,有很多种方法:你可以用变量控制你的逻辑;可以设置 onPressed 为 null;可以用AbsorbPointer 禁用事件......
我的场景是要给按钮设置disabledColor,在 button 为 enable 时一种颜色,为 disable 时又是另外一个颜色,但是设置完disabledColor 后,怎样设置 disable 呢,看了一下按钮的所有属性,也没有 enable 相关的设置啊,我去,这不合理吧 !
二、解决
我们看一下 disableColor 属性的说明:
你妹啊!原来你的 enable 判断是用 onPressed 是否为 null 进行判断的!不禁感叹:纵横江湖几十载,第一次见这种判断方法,就不能常规点,加一个属性吗 ?
现在知道了它的实现原理,你也应该知道怎样设置 disable 了:
只需要给 onPressed 置为 null 就可以了。
搞定!