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

导航抽屉没有碎片怎么用?

阚元白
2023-03-14

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

共有1个答案

董高畅
2023-03-14

首先,API10可以通过包含DrawerLayout的同一个Android支持包访问片段。这已经存在了两年多的时间,如果您不熟悉Android在过去两年中的功能,就不应该尝试使用drawerlayout这样的新功能

其次,drawerlayout中没有任何东西与片段绑定。引用您链接到的网页:

当用户在抽屉的列表中选择一个项目时,系统在给定给setOnItemClickListener()的onItemClick()上调用onItemClick()。在onItemClick()方法中所做的工作取决于如何实现应用程序结构。

如果你仔细阅读那两句话,你就会看到“片段”这个词在这两句话中都没有出现。这是因为drawerlayout没有绑定到片段。他们展示的示例代码使用了片段,但那仅仅是示例代码。

因此,欢迎您根据需要更新UI:

  • 使用Android支持包的碎片后端口执行FragmentTransaction
  • 启动活动,或
  • 对现有活动再次调用SetContentView(),或
  • 否则修改现有活动的UI(例如,隐藏/显示某些小部件)
 类似资料:
  • 我有一个关于片段管理的问题。 我已经编写了一个基于碎片的抽屉活动。每次点击菜单项后,您都会看到一个空片段。 我如何实现这一点?

  • 在阅读了关于片段和活动的文档和讨论后,我想我已经把情况弄清楚了。 活动应该为用户提供一个屏幕,用户可以在其中工作。导航到其他屏幕通常会破坏活动。 片段应该提供很少或单个功能组件,可以在活动中再次使用。片段的内容应该相互独立地工作,因此可以在多个活动中重用。 虽然这一切似乎都有道理,但有一件事我无法理解: 如果您创建一个新的Android应用程序,并选择创建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),但只有当片段生命周期中的方向发生变化时才会调用它。每当我切换到新片段时,都会创建一个新片段,我不知道如何从片段中保存