操作栏,导航抽屉和片段后台管理

时间:2014-07-02 11:50:39

标签: java android android-fragments fragment

我正在我的应用中实施以下教程:Creating a Navigation Drawer

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

  • 使用一项活动
  • 2片段:FragmentA始终附着。单击按钮时附加FragmentB
  • 当FragmentB可见时,操作栏主页按钮是一个向后箭头,从后台堆栈中删除FragmentB
  • 当片段B不可见时,操作栏按钮主页按钮显示抽屉布局。

如何实现主页按钮的转换?

由于

1 个答案:

答案 0 :(得分:1)

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

以下调用将主页按钮图标设置为“后退”图标。

getActionBar().setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP);

因为MenuItem的动作是由onOptionsItemSelected()方法定义的,所以你也必须覆盖它,并检查是否单击了主页按钮。实际上,导航抽屉将再次绘制,因此您需要从该方法返回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);
}

要将主页按钮恢复为默认的“行为”,请使用以下呼叫:

getActionBar().setDisplayShowHomeEnabled(true);

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

我在此处提供了一个示例,请查看:

Navigation Drawer example

希望得到这个帮助。