AppCompat v21带片段菜单的后退导航

时间:2015-02-23 05:09:17

标签: android android-fragments android-appcompat android-menu android-toolbar

所以..我面临着一个让我在过去几个小时里疯狂的问题。

我有一个App使用AppCompact v21和工具栏。我还使用以下方式处理导航:

 getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
 getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 getSupportActionBar().setHomeButtonEnabled(true);

与清单上的父活动结合使用。哪个效果很好......

我的问题是:

我有一个活动,其中包含3个带有viewpager的标签,我需要其中一个片段来拥有它自己的菜单。

我可以将菜单充气,但是一旦菜单膨胀,该片段中的后箭头就不再起作用了。在视图寻呼机的其他2个片段中,通过工具栏的后退导航仍然有效。

在我的片段中:

// Inside onCreate...
this.setHasOptionsMenu(true);

// Later on somewhere else...
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.menu_submit, menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    super.onOptionsItemSelected(item);
    // my menu logic goes here.
    return true;
}

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

当您始终在true中返回onOptionsItemSelected()时,这意味着您已经处理了所有可能的菜单项(包括“向上”按钮)。如果您不处理某件商品,则应返回super.onOptionsItemSelected(item)

@Override
public boolean onOptionsItemSelected(MenuItem item) {
  switch (item.getItemId()) {
    // Your menu logic such as
    case R.id.your_menu_item:
      // Do something
      return true;
    default:
      return super.onOptionsItemSelected(item);
  }
}