我使用WizarDroid,如果满足某些条件,我打算跳过一步。
我有以下流程:
flow = new WizardFlow.Builder()
.setActivity(this) //First, set the hosting activity for the wizard
.setContainerId(R.id.step_container) //then set the layout container for the steps.
.addStep(WStep1.class) //Add your steps in the order you want them
.addStep(WStep2.class) //to appear and eventually call create()
.addStep(WStep3.class) //to create the wizard flow.
.create();
如果设置了变量,我打算跳过WStep2。
根据其教程,我只能禁用以进入下一步,直到我将其设置为:Controlling wizard flow dynamically
如何告诉向导可以跳过下一步?
答案 0 :(得分:1)
似乎WizarDroid无法从WizardFlow中删除步骤。
但是,您可以检查WStep2
中提到的变量,然后只需拨打goNext()
。这肯定会有用。
如果您想尝试其他方式,您也可以使用(虽然我不能保证它会起作用):
setStepCompleted(1, true) //setStepCompleted(int stepPosition, boolean stepCompleted)
编辑:看到你也想在向导中向后移动,你将不得不拆分向导。
我的意思是,如果你想在某些情况下跳过WStep3:
你在MainActivity.class中的
flow1 = new WizardFlow.Builder()
.setActivity(this)
.setContainerId(R.id.step_container)
.addStep(WStep1.class)
.addStep(WStep2.class)
.create();
在WStep2.class中
if (skipWStep3()){
flow2 = new WizardFlow.Builder()
.setActivity(this)
.setContainerId(R.id.step_container)
.addStep(WStep4.class)
.addStep(WStep5.class)
.create();
}
else {
flow2 = new WizardFlow.Builder()
.setActivity(this)
.setContainerId(R.id.step_container)
.addStep(WStep3.class)
.addStep(WStep4.class)
.addStep(WStep5.class)
.create();
}
答案 1 :(得分:0)
默认情况下,BasicWizardLayout不支持跳过某个步骤。您必须对其进行子类化并使用API方法Wizard#setCurrentStep,或者按照here解释的方法对WizardFragment进行子类编写自己的向导布局类。
void org.codepond.wizardroid.Wizard.setCurrentStep(int stepPosition)
设置向导的当前步骤
参数
stepPosition the position of the step within the WizardFlow