我目前有一个步进器也可以正常工作,但是我有一个问题,如何在第一步中禁用后退按钮,但是在其他步骤中应该显示它。
我用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,
),
]),
),```
答案 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属性指定的颜色进行着色。