使用滑动选项卡功能将 MenuItem 隐藏在 FragmentActivity 中的一个片段中

Hide MenuItem in one Fragment in FragmentActivity with swipe tabs functionality

我有一个带有三个滑动标签的 FragmentActivity。我在 actionbar 中添加了一个刷新图标作为 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。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(false);
}

我什至试图在该特定片段的 setUserVisibleHint 中设置 refreshMenuItem.setVisible(false) 以隐藏此菜单项。

没有任何效果.....请帮帮我。

在Fragment的onCreate方法中设置setHasOptionsMenu(true)和 覆盖片段中的 onPrepareOptionsMenu() 并设置相应菜单项的可见性。

 @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);              
 }