如何使用Conductor实现类似向导的导航流程?

时间:2018-03-30 15:13:35

标签: android conductor

我正在使用Conductor构建Android应用。让我们说应用程序有以下屏幕

  • 小工具列表
  • 小工具详情
  • 创建小工具:第1步
  • 创建小工具:第2步

如何使用Conductor实现以下导航流程?

  1. 用户启动应用,小工具列表控制器被推送。
  2. 用户点击新窗口小部件,创建窗口小部件:推送步骤1 控制器。
  3. 用户点击转到步骤2,创建小工具:第2步控制器被按下。
  4. 用户点击确认,创建了窗口小部件,现在我想要弹出创建窗口小部件:步骤1 创建窗口小部件:步骤2 并按窗口小部件详细信息< / em>用于新创建的小部件。
  5. 如果我一直弹回小部件列表,然后按小部件详细信息小部件列表将在之前暂时显示显示小部件详细信息

    如何在单个事务中实现此目的并将用户直接带到 Widget Details ,同时同时弹出 Create Widget:Step 1 Create Widget:第二步来自后台?

1 个答案:

答案 0 :(得分:0)

您可以使用router.setBackstack()方法并在执行后续过滤步骤时使用标签:

  1. 设置根控制器

    if (!hasRootController()) {
        setRoot(RouterTransaction.with(listController).tag("list"))
    }
    
  2. 按第一个控制器

    router.pushController(RouterTransaction.with(firstStepController).tag("step1"))
    
  3. 推动第二个控制器

    router.pushController(RouterTransaction.with(secondStepController).tag("step2"))
    
  4. 推动细节控制器

    router.setBackstack(
        router.backstack.filter { it.tag() != "step1" && it.tag() != "step2" } + RouterTransaction.with(detailController).tag("detail")
        SimpleSwapChangeHandler() // Or other change handler for proper animation
    )