如何禁用按钮ins自身抖动

时间:2020-06-27 17:48:24

标签: flutter dart

当启用应用启动按钮时,我有禁用按钮功能的问题;单击该按钮时_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,

2 个答案:

答案 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
  }
}