0

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

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

1. 混合目的地

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

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

2.全屏弹窗

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

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


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

4

1 回答 1

3

根据监听导航事件文档

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

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

根据从 DialogFragment 文档创建目标

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

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

于 2020-02-08T23:15:20.247 回答