我试图在片段更改时隐藏某些菜单项,但似乎这不起作用。以下是即时通讯做: 定义菜单和菜单项:更改片段中菜单项的可见性
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.actionbar_sharecall, menu);
actionMenu = menu;
MenuItem searchItem = menu.findItem(R.id.action_searchmenuitem);
MenuItem item = menu.findItem(R.id.action_menushare);
// item.setVisible(false);
// searchItem.setVisible(false);
topSearch = searchItem;
topShare = item;
final MRShareActionProvider actionProvider = new MRShareActionProvider(
this);
MenuItemCompat.setActionProvider(item, actionProvider);
actionProvider
.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
actionProvider.setOnShareTargetSelectedListener(this);
actionProvider.setShareIntent(createShareIntent());
return true;
}
改变片段和改变可视性:
//changing visibility
topSearch.setVisible(false);
frag = new SyncFragment();
FragmentTransaction ft = getSupportFragmentManager()
.beginTransaction();
ft.replace(R.id.fragment_content, frag);
ft.commitAllowingStateLoss();
,这是我SyncFragment:
public class SyncFragment extends MRBaseACBFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_sync, null);
}
}
但片段改变后,我仍然可以看到菜单项。有人可以帮助我解决如何做到这一点?