当前位置: 首页 > 知识库问答 >
问题:

将导航抽屉与活动VS与片段一起使用有哪些优势?

傅兴平
2023-03-14

我想在我的应用程序中实现一个导航抽屉,但我对是否应该将其与片段或活动一起使用(有关更多详细信息,请参见下图)存在冲突。

这两者之间有什么真正的优缺点吗,还是只是一个偏好的问题?

编辑:

只是为了澄清我的问题:

  1. 在使用活动而不是片段的情况下

当我选择“导入”将打开一个活动而不是一个片段,如果我选择“图库”,它将打开一个活动,其中包含图库项目等的内容,以及抽屉窗口中其他项目的内容。

如果我从抽屉窗口中的任何项目中进行选择,它将为每个选定项目打开其内容片段,而不是为每个选定项目启动新活动。

共有1个答案

朱明知
2023-03-14

记住片段需要一个活动。当使用片段时,您总是有一个最小值。

如果您正在谈论使用like,那么在大多数情况下,主要元素是最好使用片段,因为您有更大的灵活性。

如果您有3个活动和10个片段,或者有13个活动,性能会更好?想想看,应用程序中的导航将是一个巨大的挑战,但这只是在应用程序中使用正确的流程。

编辑:

例如:

具有活动而不是片段的抽屉

如果您要使用没有片段的NavigationDrawer,那么最好将NavigationDrawer实例保留在单个活动中,当您通过从NavigationDrawer中的项目中进行选择来导航应用程序时,启动的每个活动都不应实现NavigationDrawer,而应实现返回按钮以导航回实现NavigationDrawer的“主”/单个活动。

注意:如果您确实想在多个活动中实现NavigationDrawer,则必须在您希望显示它的每个活动中重新创建NavigationDrawer的新实例。

我认为这与使用片段相比是一个缺点,而如果使用片段,则不需要很多抽屉实例,只需要一个。

带有片段而不是活动的抽屉

如果您将NavigationDrawer与Fragments一起使用,那么抽屉应该在单个活动中实现,并且当选择每个抽屉项目时,它们的内容将显示在每个它们自己的Fragments中(在管理所有片段实例的中央活动内部调用)

 类似资料:
  • 首先,我想说的是,我对android开发和gradle都是新手。不适用于java。我有一个支持2.3.6的项目,现在正在使用支持库将其迁移到4.4。我也在使用Gradle,到目前为止,它工作得很好。 我现在使用导航抽屉在应用程序片段之间导航,这些片段过去是活动。抽屉中的一个片段包含列表中某个项目的listview和detail视图。当用户单击列表中的项目并显示其详细信息时,抽屉片段切换其视图。 虽

  • 我正在用导航抽屉做一个应用程序。为此,我有一个HomeActivity,它包含我导航抽屉的所有登录、菜单中的选项、视图、标题等。在这里,我设置listenerclick以获取导航元素。此侦听器接收FragmentManager,并使用开关执行以下操作: 将片段替换为我在每个开关情况下需要的片段。 在家庭布局中,我有一个框架布局和抽屉菜单。 Mi的问题是,我只有一个具有framelayout的活动,

  • 我已经从Android官方网站下载了示例项目http://developer.android.com/training/implementing-navigation/nav-drawer.html.我试图了解导航抽屉是如何工作的。所以,我有一个疑问,他们从左侧菜单中为每个项目调用一个片段。在我的项目中,我有一个大活动,我试图通过这个片段调用它: 公共类HomeFragment扩展了片段{ } 但

  • 我有一个活动a,一个列表片段P和两个片段Q和R。 当应用程序启动时,会创建一个,加载P。根据用户点击的内容,它被Q或R取代。 现在,通过参考本教程,我实现了一个导航抽屉,向用户显示某些项目。然而,由于我在活动中实现了导航抽屉,它显示了所有片段。我希望它只对P可用。 (非常类似于谷歌Gmail应用程序。当用户在主屏幕上时,抽屉就出现了。当用户点击打开电子邮件时,抽屉就会切换到后退按钮) 我不知道如何

  • 我正在使用Android导航组件创建一个带有导航抽屉的应用程序。但是,如果通过导航抽屉更改当前片段,然后按回,应用程序将始终返回到导航图的开始片段。我只能找到如何在使用导航组件时从backback中删除片段的解决方案,而不能找到如何添加片段的解决方案。 我已经在NavController的AppBarConfiguration中添加了其他片段作为根片段,但这不会改变行为。在应用程序的其他部分使用标

  • 我所拥有的是左导航菜单,我使用抽屉菜单,它可以很好地与片段,我有五个按钮,每个按钮打开一个片段,但现在我希望每个案例打开一个活动,而不是片段,我已经尝试使用意图,但它不起作用!!这是我的代码: 那么,我应该在这段代码中修改什么,使它可以打开一个活动而不是片段???有人能帮我吗?