我对导航组件如何适应应用程序行为感到有些困惑。在教程中这一切看起来都很好而且很闪亮,你不会做太复杂的事情,但是在真正的应用程序中实现时,事情似乎有所不同。
导航前
在实现导航之前,我必须手动运行片段事务。为了做到这一点,我的片段将实现一个接口,该接口onFragmentAction
将 a 传递bundle
给主片段Activity
,并在基于动作的活动中,用另一个片段替换当前片段。
需要处理的第二部分是顶部工具栏和BottomAppBar
. 例如BottomAppBar
,需要FAB
在某些片段上以不同方式对齐或隐藏在其他片段中。此外,顶部ToolBar
需要在某些上展开或在其他上折叠。为此,我听取FragmentManager.OnBackStackChangedListener
并根据片段标签getSupportFragmentManager().getBackStackEntryAt(size - 1).getName()
相应地更改布局。
带导航
第一部分似乎很容易做到:传递参数并开始新的片段。但我不知道导航是否可以处理工具栏管理,或者我需要继续从我的活动中管理它。