带有导航组件的 Fragment 中的底部导航

Cil*_*nco 5 android android-fragments android-bottomnav android-architecture-navigation

在我的应用程序中,我有一个BottomNavigation来自 Material design的主屏幕。从这些屏幕中,我希望能够启动BottomNavigation隐藏的其他片段,以便新片段填满整个屏幕。然后应该可以通过后退箭头返回。我想你们都可以想象这一点,因为这是今天非常普遍的模式。

为了实现这一点,我想使用带有单个活动设计的导航组件。我的想法是,我的 MainActivity 只包含一个,NavHostFragment而 BottomNavFragment 包含另一个NavHostFragment以及BottomNavigation。由于隐藏的可能性,我无法移动 BottomNavigation到 MainActivity 布局。

这对我来说似乎有点奇怪。我真的需要两个导航图和两个NavHostFragments吗?的NavHostFragment在BottomNavFragment仅具有目的,以显示与相关联的相关片段BottomNavigation。要导航到其他片段,我必须使用NavHostFragment来自活动的 。如果我使用相同的导航图,它会与开始导航相冲突,从而导致无休止的递归。

或者我应该DialogFragments对我想开始的其他片段使用全屏吗?如果是这样,我如何告诉导航组件以全屏对话框的形式启动对话框?谷歌有推荐的方法来做到这一点吗?

小智 5

Google 建议根据要求NavController使用OnDestinationChangedListener和更新 ui来收听当前目的地。看这里