我是Android导航组件的新手,想了解如何在相对简单的情况下使用单一活动方法来使用它。我显然希望系统处理后退堆栈,也可以进行底部导航。
我需要的是两个非常简单的案例:
我的导航图中的某些目的地具有底部导航,而有些则没有。想象一下,我有一个没有底部导航的登录流程,然后转到底部导航的“真实应用”。 Google说,将底部导航栏,抽屉和操作栏放在导航图的外面,这意味着它们会显示在所有目的地。
导航组件支持吗?没有隐藏/显示底部导航的肮脏技巧。
另一个问题-是否支持多个导航主机?想象一下,我有一个带有底部导航和操作栏的UI,它们位于导航主机区域之外。但是然后,我需要显示一个全屏弹出窗口,例如对话框或资源选择屏幕,该弹出窗口还将显示在底部导航栏和操作栏上。
我可以作为导航图中的目的地吗?
对于这两个问题,任何概念上受支持的解决方案都对我有好处,包括在导航期间切换图形/主机。
答案 0 :(得分:3)
根据Listen for navigation events documentation:
作为示例,您可能打算在应用程序的某些区域显示某些常见的UI元素,而将其隐藏在其他区域。使用自己的
OnDestinationChangedListener
,您可以根据目标位置选择性地显示或隐藏这些UI元素
是的,当您移至某些目标位置(例如登录屏幕)时,可以有选择地显示或隐藏活动UI的元素。
根据Create a destination from a DialogFragment documentation:
如果现有
DialogFragment
,则可以使用<dialog>
元素将对话框添加到导航图中
这还支持其他类型的DialogFragment
,例如BottomSheetDialogFragment
。