隐藏一些操作栏项

时间:2014-06-12 10:43:00

标签: android android-fragments android-actionbar

我有一个基础活动。我在基本活动中夸大了操作栏项目。现在在我的主要活动中,它扩展了基本活动,我替换了片段。所以在替换我的时候隐藏刷新图标并显示共享图标。但是在加载第二个片段之前会显示共享图标。一旦显示第二个片段,再次分享图标就是隐藏,为什么这样......这就是我试过的。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    mMenu = menu;
    return super.onCreateOptionsMenu(menu);

}

private void showOption(int id) {
    MenuItem item = mMenu.findItem(id);
    item.setVisible(true);
}

private void hideOption(int id) {
    MenuItem item = mMenu.findItem(id);
    item.setVisible(false);
}

隐藏和显示图标的方法......

在替换片段时,我这样做:

replaceFragment(mDetailFragment);
            showOption(R.id.action_share);
            hideOption(R.id.action_refresh);

1 个答案:

答案 0 :(得分:1)

您必须遍历菜单参考的每个菜单项才能更改其属性。

 Menu mMenu ;
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
      mMenu = menu;
      return super.onCreateOptionsMenu(menu);
 }

 private boolean changeVisibility(int menuId, boolean visibility) {
    for (int i = 0; i < menu.size(); i++) {
        if (mMenu .getItem(i).getItemId() == menuId) {
            mMenu .getItem(i).setVisible(visibility);
        }
    }    
}

然后在活动的任何地方使用它:

replaceFragment(mDetailFragment);
changeVisibility(R.id.action_share, true);
changeVisibility(R.id.action_refresh, false);