Flutter 颤振:禁用上一步进器单击

Flutter 颤振:禁用上一步进器单击,flutter,dart,Flutter,Dart,我正在使用小部件更改PinCode表单。一切正常,但我不知道如何禁用以前的步进单击。 例如: 步骤1输入旧的PinCode 第二步输入新的Pincode 如果单击步进器进入步骤2,我不想返回步骤1。 我怎样才能解决这个问题 以下是我的源代码: 表单( 键:_formKey, 孩子:步进机( 步骤:步骤(), 当前步骤:当前步骤, onStepContinue:(){ 设置状态(){ 如果(formKeys[currStep].currentState.validate()){ if(cur

我正在使用小部件更改PinCode表单。一切正常,但我不知道如何禁用以前的步进单击。 例如:

  • 步骤1输入旧的PinCode
  • 第二步输入新的Pincode
如果单击步进器进入步骤2,我不想返回步骤1。 我怎样才能解决这个问题

以下是我的源代码:
表单(
键:_formKey,
孩子:步进机(
步骤:步骤(),
当前步骤:当前步骤,
onStepContinue:(){
设置状态(){
如果(formKeys[currStep].currentState.validate()){
if(currStep6){
返回“大于4小于6”;
}
返回null;
},
),
),
),
];
}

我不知道有什么方法可以做到这一点,
Stepper
小部件提供了开箱即用的支持。我提议的方法如下:

//已访问步骤索引的列表
列出已访问的步骤索引=[];
//你的表格
步进机(
步骤:步骤,
当前步骤:当前步骤,
步骤:(步骤){
//我不确定step是否已经是它的索引
//如果是这样的话,这个代码可以简化
var indexOfSelectedStep=steps.indexOf(step);
如果(!alreadyVisitedStepsIndexes.contains(INDEXOFSELECTED STEP)){
add(indexOfSelectedStep)中的所有步骤;
设置状态(){
步进=步进;
});
}
},
)

只需检查
步骤中的
变量,无论它是上一步还是下一步。如果是上一步,则不要调用
设置状态

Stepper(
    steps:steps(),
    currentStep:currentStep,
    onStepTapped:(step){
      if(step>currentStep){
        setState((){
            currentStep=step;
        });
      }
    }
)

我认为这样做的一种方法是在
onsteptaped
中处理它,检查它是否是上一个,而不要调用
setState
Stepper(
    steps:steps(),
    currentStep:currentStep,
    onStepTapped:(step){
      if(step>currentStep){
        setState((){
            currentStep=step;
        });
      }
    }
)