gpt4 book ai didi

android - Conductor:弹出到 Controller 而不显示在 View 中

转载 作者:行者123 更新时间:2023-11-30 05:03:04 34 4
gpt4 key购买 nike

我有一个应用程序使用 Conductor 来处理它的底部导航栏导航。为了简洁起见,我将尽量简明扼要地描述它。该应用程序有大量逻辑,我希望尽可能少地触及这些逻辑

我遇到的问题与 ControllerChangeHandler.onChangeCompleted()

有关

底部导航结构如下..

仪表板 |登入 |医生 |地点 |更多

当用户通过 Login 选项卡登录时,Conductor 会很快弹出到我的 Dashboard Controller 然后启动一个新 Activity ,这样当用户点击后退按钮时,他们将返回到 BottomNav Activity 并登陆仪表板。

我遇到的问题是,在新 Activity 启动之前,用户能够看到仪表板 View 闪烁半秒钟。

  router.popToTag(newTag, null)

^^ 是否应该为 ChangeHandler 传递 null 以防止任何 View 交换?或者它会在没有任何花哨的动画的情况下简单地交换 View ?我相信这就是我困惑的根源。

我希望通过将 ChangeHandler 设置为 null,不会有可见的动画,但在启动 Activity 之前 View 仍然会交换。

不幸的是,我的登录逻辑和流程紧密依赖于 OnChangeCompleted()。所以我需要 Conductor 弹出到新 Controller ,我只需要它对用户完全不可见...

有什么建议吗?我认为,如果直接在代码行下的问题得到解答,那将对我有很大帮助。

最佳答案

Conductor 附带 com.bluelinelabs.conductor.internal.NoOpControllerChangeHandler 类,它应该适合您的用例。查看源代码,除了调用 ControllerChangeCompletedListener.onChangeCompleted() 外,它什么也没做。据我了解,这应该意味着没有添加或删除任何 View 。

要回答有关传递 null 更改处理程序的问题,库中负责处理更改的内部方法包含以下代码:

if (inHandler == null) {
handler = new SimpleSwapChangeHandler();
} else if (inHandler.hasBeenUsed && !inHandler.isReusable()) {
handler = inHandler.copy();
} else {
handler = inHandler;
}

其中 inHandler 是指您传递给 popToTag 方法的更改处理程序。 SimpleSwapChangeHandler 会完全按照您所发现的那样交换 View ,但没有动画。

关于android - Conductor:弹出到 Controller 而不显示在 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57876139/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com