我有一个带有三个滑动标签的FragmentActivity。我在操作栏中添加了一个REFRESH图标作为MenuItem,并通过覆盖onCreateOptionsMenu在FragmentActivity中夸大了该菜单。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
getMenuInflater().inflate(R.menu.live_stream_item, menu);
refreshMenuItem = (MenuItem) menu.getItem(0);
refreshMenuItem.setVisible(true);
return super.onCreateOptionsMenu(menu);
}

我已全局声明了refreshMenuItem,并希望在一个片段中设置Visibility GONE refreshMenuItem.setVisible(false),并使其在其他片段中可见。
我在一个片段中使用了setHasOptionsMenu,我想要刷新菜单项Invisible。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(false);
}

即使我尝试在该特定片段中的setUserVisibleHint中设置refreshMenuItem.setVisible(false)来隐藏此menuItem。
什么都不行.....请帮帮我。
答案 0 :(得分:3)
在Fragment的onCreate方法和中设置setHasOptionsMenu(true)
覆盖片段中的 @Override
void onPrepareOptionsMenu(Menu menu) {
// if nav drawer is opened, hide the action items
menu.findItem(R.id.xxx).setVisible(false);
menu.findItem(R.id.yyy).setVisible(false);
}
并设置相应菜单项的可见性。
.*