更改或删除xamarin android中的选项菜单
我正在使用xamarin android应用程序。我只有一个MainaActivity,它有三个片段。我想更改MainaActivity的选项菜单,并在片段更改时删除一些项目。 怎么做?更改或删除xamarin android中的选项菜单,android,xamarin,optionmenu,Android,Xamarin,Optionmenu,我正在使用xamarin android应用程序。我只有一个MainaActivity,它有三个片段。我想更改MainaActivity的选项菜单,并在片段更改时删除一些项目。 怎么做? 任何解决办法 是的。要更改菜单,需要在MainActivity中调用以下方法: InvalidateOptionsMenu(); 这将导致视图重置活动中的选项。这意味着,将再次调用方法oncreateoptions menuget。只需在此方法中进行一些检查,如以下示例所示: public override
任何解决办法 是的。要更改菜单,需要在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)获取菜单项代码>然后根据更改的内容设置可见性。。。这样,您就可以删除这些项目,或者至少使其不可见