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

操作栏、导航抽屉和片段回溯管理

欧阳哲
2023-03-14

我正在我的应用程序中实现以下教程:创建导航抽屉。

我的目标是实现以下行为:

  • 使用一个活动
  • 2 Fragments:FragmentA始终附加。单击按钮时附加FragmentB
  • 当FragmentB可见时,操作栏home按钮是一个从背包中删除FragmentB的向后箭头
  • 当片段B不可见时,操作栏按钮home按钮显示抽屉布局。

如何实现home按钮的转换?

谢谢

共有1个答案

轩辕瑞
2023-03-14

ActionBar类中有一些方法可以帮助您:

以下通话将Home按钮图标设置为“back”(返回)图标

getActionBar().setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP);

因为MenuItem的操作是由onOptionsItemSselect()方法定义的,所以你也必须覆盖它,并检查是否单击home按钮。实际上,抽屉菜单将再次绘制,所以你需要从该方法返回true以防止抽屉再次绘制。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
     if (item.getId() == android.R.id.home) {
          // do what you want here
          return true; // prevent the drawer to draw again;
     }
     return super.onOptionsItemSelected(item);
}

要将home按钮返回其默认“行为”,请使用以下调用:

getActionBar().setDisplayShowHomeEnabled(true);

最后一步是检查当前片段是FragmentA(这将激活抽屉绘制导航片段)还是FragmentB(没有)。您可能需要添加一个全局布尔变量来执行它们,并检查导航项的位置。

我在这里提供了一个示例,请查看:

导航抽屉示例

希望这有帮助。

 类似资料:
  • 请给我解释一下。。。我的,它与同步(比如)。活动只有很少的片段,在不同的片段中,我需要使用不同的模式(一种模式是视差,另一种模式是简单)。因此,我认为我应该在每个框架中用AppBar和内容设置协调布局 但我如何替换“新建”上的最后一个工具栏以保存与抽屉的同步?或者这是错误的方式,我需要做一些其他的?

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

  • 我正试图把导航抽屉放在动作栏上,当它像这个应用程序一样向右滑动时:[已删除] 这是我的主要活动布局: 关于stackoverflow的其他一些问题与此类似,但建议所有答案都使用滑动菜单库。但这个应用程序他们仍然使用Android。支持v4.widget。抽屉式布局,他们成功了。不要问我怎么知道他们使用标准的导航抽屉,但我肯定。 非常感谢你的帮助。 这是最终的解决方案:多亏了@Peter Cai,这

  • 我已经设置了一个左右两侧的导航抽屉。除了一件事,一切都很好。 我希望我的另一个动作栏项目切换右边的抽屉菜单。正常的左边动作栏切换效果很好。谷歌Android应用程序通知面板是我希望动作模仿的。 下面是我用来设置右侧切换的代码(现在它在单击时强制关闭): 如果有人知道怎么做,如果你能让我知道就太好了! 谢谢

  • 我正在开发一个android项目,我正在尝试使用来自http://developer.android.com/training/implementing-navigation/nav-drawer.html.的示例集成新的导航抽屉 它主要工作除了一件事,动作栏向上按钮不显示菜单,但如果我用手指从边缘滑动主活动屏幕,菜单就会出现,所以我知道实际菜单没有问题,它只是动作栏按钮。 下面是代码 感谢您提供

  • 我目前正在为我的Android应用程序使用导航抽屉。在我的第一个片段中,有一个片段使用Facebook的Graph API加载数据。因此,当我的应用程序第一次加载时,它首先进入第一个片段。 然后,我使用导航抽屉单击另一个片段并查看它。 最后,我重用导航抽屉返回第一个片段并查看它。 我面临的问题是,我如何继续利用已经创建过一次的片段,而不是在选择导航抽屉项时重新创建它。我的片段切换代码如下所示。 我