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