更改或删除xamarin android中的选项菜单

更改或删除xamarin android中的选项菜单,android,xamarin,optionmenu,Android,Xamarin,Optionmenu,我正在使用xamarin android应用程序。我只有一个MainaActivity,它有三个片段。我想更改MainaActivity的选项菜单,并在片段更改时删除一些项目。 怎么做? 任何解决办法 是的。要更改菜单,需要在MainActivity中调用以下方法: InvalidateOptionsMenu(); 这将导致视图重置活动中的选项。这意味着,将再次调用方法oncreateoptions menuget。只需在此方法中进行一些检查,如以下示例所示: public override

我正在使用xamarin android应用程序。我只有一个MainaActivity,它有三个片段。我想更改MainaActivity的选项菜单,并在片段更改时删除一些项目。 怎么做?
任何解决办法

是的。要更改菜单,需要在MainActivity中调用以下方法:

InvalidateOptionsMenu();
这将导致视图重置活动中的选项。这意味着,将再次调用方法
oncreateoptions menu
get。只需在此方法中进行一些检查,如以下示例所示:

public override bool OnCreateOptionsMenu(IMenu menu)
{
    MenuInflater.Inflate(Resource.Menu.MyMenu, menu);

    var m0 = menu.FindItem(Resource.Id.menuId);
    m0.SetTitle("FirstFragmentAction")
    m0.SetVisible(FirstFragmentActive);

    // And so on
}
invalidateOptions功能表的Android文档

声明选项菜单已更改,因此应重新创建。这个 OnCreateOptions菜单(菜单)方法将在下次需要时调用 待展示


我调用了((MainActivity)Activity.invalidateOptions菜单();但是仍然没有删除OptionMenu。您在
onCreateOptionMenu
方法中执行什么操作?在MainActivity中,我执行以下操作:
public override bool oncreateoptions菜单(IMenu菜单){MenuInflater.Inflate(Resource.Layout.menu,menu);返回true;}
Ok。所以再次检查我的答案。您需要使用
menu.FindItem(Resource.Id.MyMenuItemId)获取菜单项然后根据更改的内容设置可见性。。。这样,您就可以删除这些项目,或者至少使其不可见