【问题标题】:Android Navigation with nested bottom navigation带有嵌套底部导航的 Android 导航
【发布时间】:2020-02-08 20:50:13
【问题描述】:

我是 Android 导航组件的新手,想了解如何在我想要使用单一活动方法的相对简单的场景中使用它。我显然希望系统处理返回堆栈,也用于底部导航。

我需要的是两个非常简单的案例:

1。混合目的地

我的导航图中的一些目的地有底部导航,而有些则没有。想象一下,我有一个没有底部导航的登录流程,然后转到我有底部导航的“真实应用程序”。谷歌表示将底部导航、抽屉、操作栏放在导航图之外,这意味着它们会显示在所有目的地。

导航组件是否支持此功能?没有隐藏/显示底部导航的肮脏技巧。

2。全屏弹出窗口

另一个问题 - 是否支持多个导航主机?想象一下,我有一个带有底部导航和操作栏的 UI,它们位于导航主机区域之外。但随后我需要显示一个全屏弹出窗口,如对话框或资源选择屏幕,它也会越过底部导航和操作栏。

我可以将其作为导航图中的目的地吗?


对于这两个问题,任何概念上支持的解决方案都对我有好处,包括在导航期间切换图表/主机。

【问题讨论】:

    标签: android android-architecture-components android-architecture-navigation android-navigation-graph


    【解决方案1】:

    根据Listen for navigation events documentation:

    例如,您可能有一些常见的 UI 元素,您打算在应用的某些区域显示这些元素,而在其他区域隐藏它们。使用您自己的OnDestinationChangedListener,您可以根据目标目的地选择性地显示或隐藏这些 UI 元素

    所以是的,当您移动到某些目的地(例如登录屏幕)时,您可以有选择地显示或隐藏 Activity 的 UI 元素。

    根据Create a destination from a DialogFragment documentation:

    如果您有一个现有的DialogFragment,您可以使用<dialog> 元素将对话框添加到您的导航图中

    这也支持其他类型的DialogFragment,例如BottomSheetDialogFragment。

    【讨论】:

    • 谢谢伊恩,这很尴尬,因为几个小时前我正在阅读“导航组件”部分下的所有这些文档,我想这对我来说信息太多了,我错过了。当然要提到我们生活的美好时代,一个小时前我正在看你关于单一活动方法的演讲,现在你回答了我的问题。
    • 祝你好运!如果您遇到任何问题或文档中缺少的东西(有很多!),请随时file an issue against Navigation。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    相关资源
    最近更新 更多