当启用应用启动按钮时,我有禁用按钮功能的问题;单击该按钮时_enable1 = true,应该自行禁用它,但对我不起作用
这是我尝试过的代码
if(_enable1) {
resendbutoonfunction=() {
print("hello");
setState(() {
_enable1=false;
mycolo=Colors.grey;
});
// timer = Timer.periodic(Duration(seconds: 5), (Timer t) =>disable());
// _controller.forward(from: 0.0);
// timer = Timer.periodic(Duration(seconds: 4), (Timer t) =>timertest());
};
}
这是我的按钮代码
onPressed:resendbutoonfunction,
答案 0 :(得分:2)
为了让您禁用按钮,您需要将其设置为 null
resendbutoonfunction() {
print("hello");
setState(() {
_enable1=false;
mycolo=Colors.grey;
});
// timer = Timer.periodic(Duration(seconds: 5), (Timer t) =>disable());
// _controller.forward(from: 0.0);
// timer = Timer.periodic(Duration(seconds: 4), (Timer t) =>timertest());
}
然后单击您的按钮
onPressed: _enable1 ? resendbutoonfunction : null,
答案 1 :(得分:0)
据我所知,就您所编写的代码而言,测试(如果为_enable1)以及该函数的定义仅执行一次。
要么测试必须在函数中:
resendbutoonfunction=() {
if (_enable1) {
...
}
}
或者,如果您的代码定期执行,则可以更改resendbutoonfunction的定义
if(_enable1) {
resendbutoonfunction=() {
print("hello");
setState(() {
_enable1=false;
mycolo=Colors.grey;
});
// timer = Timer.periodic(Duration(seconds: 5), (Timer t) =>disable());
// _controller.forward(from: 0.0);
// timer = Timer.periodic(Duration(seconds: 4), (Timer t) =>timertest());
};
}
else {
resendbutoonfunction=() {
// do nothing
}
}