带有嵌套底部导航的Android导航

时间:2020-02-08 20:50:13

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

我是Android导航组件的新手,想了解如何在相对简单的情况下使用单一活动方法来使用它。我显然希望系统处理后退堆栈,也可以进行底部导航。

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

1。混合目的地

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

导航组件支持吗?没有隐藏/显示底部导航的肮脏技巧。

2。全屏弹出窗口

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

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


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

1 个答案:

答案 0 :(得分:3)

根据Listen for navigation events documentation

作为示例,您可能打算在应用程序的某些区域显示某些常见的UI元素,而将其隐藏在其他区域。使用自己的OnDestinationChangedListener,您可以根据目标位置选择性地显示或隐藏这些UI元素

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

根据Create a destination from a DialogFragment documentation

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

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