如何在颤动步进中禁用第一个取消按钮

时间:2019-07-12 08:46:39

标签: flutter

我目前有一个步进器也可以正常工作,但是我有一个问题,如何在第一步中禁用后退按钮,但是在其他步骤中应该显示它。

我用controlsBuilder修改了步进器,但没有找到可以禁用后退按钮的解决方案。

预先感谢

这是我步进电脑中的一小段代码(不完整):

 controlsBuilder: (BuildContext context,
                    {VoidCallback onStepContinue, VoidCallback onStepCancel}) {
                  return Row(
                    children: <Widget>[
                      FlatButton(
                        onPressed: onStepContinue,
                        child: const Text('Weiter',
                            style: TextStyle(color: Colors.white)),
                        color: Colors.blue,
                      ),
                      new Padding(
                        padding: new EdgeInsets.all(10),
                      ),
                      FlatButton(
                        onPressed: onStepCancel,
                        child: const Text(
                          'Zurück',
                          style: TextStyle(color: Colors.white),
                        ),
                        color: Colors.blue,
                      ),
                    ],
                  );
                },



List<Step> steps = [
      Step(
        title: const Text('TEST'),
        isActive: true,
        state: StepState.complete,
        content: Column(children: <Widget>[
          RadioListTile(
            value: 1,
            groupValue: selectedRadioTile,
            title: Text("XX"),
            onChanged: (val) {
              setSelectedRadioTile(val);
            },
            activeColor: Colors.blue,
            selected: true,
          ),
          RadioListTile(
            value: 2,
            groupValue: selectedRadioTile,
            title: Text("XX"),
            onChanged: (val) {
              setSelectedRadioTile(val);
            },
            activeColor: Colors.blue,
            selected: false,
          ),
        ]),
      ),```

1 个答案:

答案 0 :(得分:1)

如果我理解正确,则希望有条件地禁用“取消”按钮。

您将需要以某种方式知道它是否是第一个屏幕。假设您在名为isFirstScreen的变量中拥有传递给controlsBuilder方法的变量。然后,您可以在onPressed处理程序上使用三元运算符禁用按钮,如下所示:

FlatButton(
  onPressed: isFirstScreen ? null : onStepCancel, // <-- important part
  child: const Text(
    'Zurück',
    style: TextStyle(color: Colors.white),
  ),
  color: Colors.blue,
),

来自Flutter FlatButton docs

  

如果onPressed回调为null,则该按钮将被禁用,不会对触摸产生反应,并且将按照disabledColor属性而不是color属性指定的颜色进行着色。