0

我正在用 Conductor 构建一个 Android 应用程序。假设该应用程序具有以下屏幕

  • 小部件列表
  • 小部件详细信息
  • 创建小部件:第 1 步
  • 创建小部件:步骤 2

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

  1. 用户启动应用程序,推送小部件列表控制器。
  2. 用户点击New Widget,Create Widget:第1步控制器被推送。
  3. 用户点击 Go to Step 2, Create Widget: Step 2控制器被推送。
  4. 用户单击确认,小部件已创建,现在我想弹出Create Widget: Step 1Create Widget: Step 2并推送新创建的小部件的小部件详细信息

如果我一直弹出回Widget List然后推送Widget Details,则Widget List将在显示Widget Details之前立即显示。

如何在单个事务中实现这一点,并将用户直接带到小部件详细信息,同时从后台弹出创建小部件:步骤 1创建小部件:步骤 2 ?

4

1 回答 1

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
    )
    
于 2018-09-11T12:31:31.373 回答