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