首页 > 解决方案 > 如何使用来自 Jetpack 的导航替换片段?

问题描述

我正在为子游戏设置导航,但我在后台导航方面遇到了一些问题。所以应用程序包含启动画面,4 个页面(片段)来收集一些带有游戏信息的卡片和主要片段。所以应用程序流程:Splash -> First-> Second -> etc 用例:用户完成了第一步并开始了第二步,单击 BackButton 并应该使用数据重定向到 MainFragment 而不是第一步。

我正在使用来自 Jetpack 的导航,而前进导航非常完美。但是我该如何进行自定义后退导航?在 UseCase 中,返回堆栈包含:Splash -> First -> Second 但是当用户单击 backButton 时,返回堆栈的行为应该类似于 App finished <- MainFragment <- Second Step

要从后台删除启动画面,我在 nav_graph.xml 中使用

    app:popUpTo="@+id/splashFragment"
    app:popUpToInclusive="true" 

要在第二个片段之前插入 MainFragment 我这样导航

First ->(使用包含弹出窗口导航)-> Main -> Second

如果 MainFragment 很小(不包含很多逻辑来显示一些数据)它工作得很好,从第一个导航到第二个时我没有看到 MainFragment。但是当我的 MainFragment 包含更多逻辑时,用户可以在 1 秒左右看到这个片段。

如何将主片段静默插入后堆栈?

标签: androidkotlinnavigationandroid-architecture-componentsandroid-jetpack

解决方案


推荐阅读