代码之家  ›  专栏  ›  技术社区  ›  Michel Feinstein

协调嵌套导航控制器中的后退按钮所有权

  •  5
  • Michel Feinstein  · 技术社区  · 6 年前

    我有一个主屏幕,显示应用程序的一般信息,还有一个包含附加信息的底页。

    如果用户单击导航抽屉菜单上的某个内容,选择新屏幕,则主屏幕内容可能会更改。

    当用户点击更多数据时,主屏幕上的底页也会改变。

    所以我基本上 底页中的嵌套导航,位于主屏幕中的主导航内。 .

    我的问题是,当使用新的Android架构组件时 Navigation Controller 这里有 app:defaultNavHost="true" 选项,截取后退按钮。

    对back按钮的自动截取使我的用户案例相当复杂。我想要的是,当用户在主屏幕中时,底页控制后退按钮,当用户交换主屏幕时,而主屏幕控制后退按钮。

    有办法控制 app:defaultNavHost 以编程方式,如此嵌套 Navigation Controllers 是否可以共存并协调后退按钮所有权?

    1 回复  |  直到 6 年前
        1
  •  5
  •   ianhanniballake    6 年前

    Navigation 1.0.0-alpha04 primary navigation fragment

    app:defaultNavHost="true" getChildFragmentManager()

    the original issue

    // This effectively removes the app:defaultNavHost flag
    getSupportFragmentManager().beginTransaction()
        .setPrimaryNavigationFragment(null)
        .commit()
    // Pass in your NavHostFragment to re-enable the flag