gpt4 book ai didi

Android Jetpack Navigation 如何处理 Toolbar 和 BottomNavBar 内容

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:18:02 25 4
gpt4 key购买 nike

我对导航组件如何适应应用程序行为感到有点困惑。在教程中,一切看起来都不错而且 Shiny ,您不会做太复杂的事情,但在实际应用程序中实现时,情况似乎有所不同。

导航前

在实现导航之前,我必须手动运行 fragment 事务。为了做到这一点,我的 fragment 将实现一个接口(interface) onFragmentAction,它将一个 bundle 传递给主要的 Activity 并在基于操作的 Activity 中, 将当前 fragment 替换为另一个 fragment 。

第二个需要处理的部分是顶部工具栏和 BottomAppBar。例如,BottomAppBar 需要让 FAB 在某些 fragment 上以不同方式对齐或隐藏在其他 fragment 中。此外,顶部的 ToolBar 需要在一些工具栏上展开或在其他工具栏上折叠。为此,我听取了 FragmentManager.OnBackStackChangedListener 并根据 fragment 标记 getSupportFragmentManager().getBackStackEntryAt(size - 1).getName() 相应地更改了布局。

带导航

第一部分似乎很容易做到:传递参数并开始新的 fragment 。但我不知道导航是否可以处理工具栏管理,或者我需要继续从我的 Activity 中管理它。

最佳答案

尽管 Alex 的解决方案有效,但我不建议将其用于管理工具栏。

工具栏应该是 fragment 布局的一部分,每个 fragment 都应该管理自己的工具栏。您可以为每个 fragment 添加不同的菜单。即使在想要在 Activity 中使用工具栏的情况下,我也建议获取对工具栏表单 Activity 的引用(通过界面),然后在 fragment 本身中添加和操作其项目。

这将使您的 Activity 和 fragment 分离(这是拥有导航图和路由器的目标之一)。一个好的经验法则是假设您想删除 fragment ,那么您不需要对 Activity 进行任何更改。

关于Android Jetpack Navigation 如何处理 Toolbar 和 BottomNavBar 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51376447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com