代码之家  ›  专栏  ›  技术社区  ›  giozh

android导航架构组件,处理不同的backback

  •  4
  • giozh  · 技术社区  · 6 年前

    我正在寻找导航架构组件,我看到的所有例子都是关于单活动应用程序与android底部菜单的集成,所以我想知道这个组件是否对我的情况有用。 我的应用程序看起来像: 下载一些数据的splashActivity,如果一切正常,则启动主活动。 一个带有自定义底部导航的主活动,允许用户导航到应用程序的3个不同部分(A、B、C),在每个部分中,用户可以导航到更深的ISIDE部分本身:

    A部分:碎片一个->碎片两个->碎片树

    B部分:碎片骨骼->碎片两个

    C部分:碎片

    在某些情况下,用户可以打开另一个显示全屏网络视图的活动。

    现在,我需要每个部分都独立于其他部分(每个片段都应该有它的back back),这样用户就可以进入fragmentathree,导航到fragmentcone并返回到a部分,仍然停留在fragmentathree中。

    导航架构组件可以处理这种奇怪的情况吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Calin    6 年前

    这可以通过最新的导航组件实现,您需要设置顶级目的地,如:

        val drawerLayout : DrawerLayout? = findViewById(R.id.drawer_layout)
        appBarConfiguration = AppBarConfiguration(
                setOf(R.id.FragmentAOne, R.id.FragmentBOne, R.id.FragmenCOne),
                drawerLayout)
    

    通过全局导航用户界面(如底部导航或侧面导航)可以到达的目的地,在用户看来都与层次结构的顶层相同。因此,它们是顶级目的地。fragmentaone、fragmentbone和fragmencone位于底部导航,我们希望抽屉图标显示在这两个目的地上,因此它们是顶级目的地。

    请注意,起始目的地始终被视为顶级目的地。如果未指定顶级目的地列表,则只有顶级目的地是起始目的地。您可以在文档中了解有关AppBarconfiguration的更多信息。

    你可以在导航代码实验室中阅读和试验这个 https://codelabs.developers.google.com/codelabs/android-navigation