我刚开始掌握Flutter的窍门,但我不知道如何设置按钮的启用状态。

从文档中,它说将onPressed设置为null来禁用按钮,并给它一个值来启用它。如果按钮在生命周期中继续处于相同的状态,这是没问题的。

我得到的印象是,我需要创建一个自定义的有状态小部件,它将允许我以某种方式更新按钮的启用状态(或onPressed回调)。

我的问题是我该怎么做?这似乎是一个非常简单的要求,但我在文档中找不到任何关于如何做到这一点的东西。

谢谢。


当前回答

简单的答案是onPressed: null给出一个禁用按钮。

其他回答

根据文件:

如果onPressed回调为空,则该按钮将被禁用 默认情况下类似于disabledColor中的平面按钮。

所以,你可以这样做:

RaisedButton(
  onPressed: calculateWhetherDisabledReturnsBool() ? null : () => whatToDoOnPressed,
  child: Text('Button text')
);

禁用点击:

onPressed: null

可以点击:

onPressed: () => fooFunction() 
// or
onPressed: fooFunction

组合:

onPressed: shouldEnable ? fooFunction : null

你也可以设置空白条件,在设置null的地方

         var isDisable=true;

   

          RaisedButton(
              padding: const EdgeInsets.all(20),
              textColor: Colors.white,
              color: Colors.green,
              onPressed:  isDisable
                  ? () => (){} : myClickingData(),
              child: Text('Button'),
            )

大多数小部件的启用和禁用功能是相同的。

前,按钮,开关,复选框等。

只需设置onPressed属性,如下所示

onPressed: null返回禁用小部件

onPressed:(){}或onPressed: _functionName返回启用的小部件

在我看来,这是最简单的方法:

RaisedButton(
  child: Text("PRESS BUTTON"),
  onPressed: booleanCondition
    ? () => myTapCallback()
    : null
)