我们随便创建一个Button,发现它的构造器是没有类似enabled的属性的。
new MaterialButton();
老规矩进源码找一下,发现Button的enabled属性只有get没有set,而且是由onPressed是否为null控制的。
/// Whether the button is enabled or disabled. Buttons are disabled by default. To
/// enable a button, set its [onPressed] property to a non-null value.
bool get enabled => onPressed != null;
那我们就明了了,可以申明一个_enable属性由一个Button的onPressed改变其值,另一个Button根据_enable去决定是否设置onPressed。(实际应用enable切换由具体业务决定)
bool _enable = true;
void toggle() {
new MaterialButton(onPressed: _enable ? () {} : null);
new MaterialButton(onPressed: () {
_enable = !_enable;
});
}