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

Android导航抽屉:碎片与Activity

阙弘博
2023-03-14

在阅读了关于片段和活动的文档和讨论后,我想我已经把情况弄清楚了。

活动应该为用户提供一个屏幕,用户可以在其中工作。导航到其他屏幕通常会破坏活动。

片段应该提供很少或单个功能组件,可以在活动中再次使用。片段的内容应该相互独立地工作,因此可以在多个活动中重用。

虽然这一切似乎都有道理,但有一件事我无法理解:

如果您创建一个新的Android应用程序,并选择创建Android导航抽屉应用程序的选项,为什么导航抽屉使用片段而不是活动来显示?

共有2个答案

蓬兴国
2023-03-14

我同意@dustendrobs所说的,但我可以补充一些东西。

碎片是显而易见的答案,这是有原因的。导航抽屉必须进行一项必须处理的活动。如果我们按照正常方式操作,当您按下导航抽屉项时,它必须更改活动的内容,并在其上添加一个片段。在这种情况下,您可以再次按导航抽屉(即在活动中)以再次更改片段。

如果我们考虑多个活动的情况,这意味着您必须选择一个处理导航抽屉的活动,并在每次您想要更改活动或为每个活动创建多个句柄时调用它。

云和惬
2023-03-14

在Android Studio中创建导航抽屉的默认模板为您提供了一个带有容器布局的活动,其中将包含您将使用的所有片段。该活动还处理导航事件和初始化方法,因此与Android文档中的说法并不矛盾。您甚至可以在单独的活动中重用您的片段。

 类似资料:
  • 我已经在我的项目中添加了一个导航抽屉活动,并尝试将项目作为片段添加。这就是我在主要活动中所做的。 默认片段是Home,它工作正常,正如预期的那样,但其他片段与Home片段重叠。(HomeFragment是唯一工作正常的)。我在每个片段类中都做过这样的事情: 我看不出错误在哪里。一切看起来都很好,但所有其他片段都显示在HomeFragment上。

  • 我有一个关于片段管理的问题。 我已经编写了一个基于碎片的抽屉活动。每次点击菜单项后,您都会看到一个空片段。 我如何实现这一点?

  • 我开始创建一个应用程序,它使用一个活动(导航抽屉)和许多片段。但我无法使用工具栏上的“后退”按钮从片段中导航回来。硬件后退按钮工作正常。我知道我需要覆盖选项ItemSelected,捕捉android。R、 id.home,检查后堆栈中是否有内容,然后弹出它。在更改片段后,“burger”按钮变为“back arrow”,但当我单击它时,选项ItemSelected将打开NavigationDra

  • 所以我有一个活动,其中有一个片段,片段有一个导航抽屉和页面的内容。当我打开抽屉并单击一个项目时,片段被替换为一个新片段。当我按下后退按钮时,我在片段管理器上调用popBackStack,它返回到第一个片段,但导航抽屉是打开的。 有几件事要注意:当按下抽屉中的一个项目时,我在抽屉布局上调用关闭抽屉,当片段被替换时抽屉关闭。如果我按下操作栏中的UP按钮,我可以用新的主片段替换片段容器,但我更喜欢能够将

  • 当我在导航抽屉中的不同片段之间切换时,我试图保存导航抽屉片段上的状态。例如:我从片段A开始触发一些事件,然后切换到片段B。然后我想在从片段B切换回片段A时看到片段A的相同状态。 我尝试使用onSavedInstanceState(Bundle savedInstanceState),但只有当片段生命周期中的方向发生变化时才会调用它。每当我切换到新片段时,都会创建一个新片段,我不知道如何从片段中保存

  • 我正在尝试按照本教程来学习如何创建导航抽屉,但我不想在用户从抽屉列表中选择一个项目后使用片段来显示新内容。解决这个问题最好的办法是什么?我使用的是API10,它不实现片段。