我正在尝试制作一个具有两个活动工具栏的android应用。我制作了两个工具栏,以便可以向每个片段活动添加操作。但是我遇到了麻烦。
好吧,当另一个片段显示出来时,我可以用以下代码替换顶部的工具栏:
public override void OnCreateOptionsMenu(IMenu menu, MenuInflater inflater)
{
//SearchMenu
inflater.Inflate(Resource.Menu.nav_search, menu);
var searchItem = menu.FindItem(Resource.Id.action_search);
var provider = MenuItemCompat.GetActionView(searchItem);
mSearchView = provider.JavaCast<Android.Support.V7.Widget.SearchView>();
mSearchView.QueryTextSubmit += (sender, args) =>
{
Toast.MakeText(this.Activity, "You searched: " + args.Query, ToastLength.Short).Show();
};
}
它运行完美。然后,我尝试在第二个工具栏上添加选项菜单,并像这样结束:
public override void OnCreateOptionsMenu(IMenu menu, MenuInflater inflater)
{
//SearchMenu
inflater.Inflate(Resource.Menu.nav_search, menu);
var searchItem = menu.FindItem(Resource.Id.action_search);
var provider = MenuItemCompat.GetActionView(searchItem);
mSearchView = provider.JavaCast<Android.Support.V7.Widget.SearchView>();
mSearchView.QueryTextSubmit += (sender, args) =>
{
Toast.MakeText(this.Activity, "You searched: " + args.Query, ToastLength.Short).Show();
};
//ActionMenu
var mBottomToolbar = this.Activity.FindViewById<Android.Widget.Toolbar>(Resource.Id.secondToolbar);
mBottomToolbar.InflateMenu(Resource.Menu.nav_manageLocation);
mBottomToolbar.MenuItemClick += (sender, e) =>
{
switch (e.Item.ToString())
{
case "Add":
ReplaceFragment(new LocationAddFragment(), "addlocation");
break;
}
base.OnCreateOptionsMenu(menu, inflater);
};
}
将nav_manageLocation
添加到第二个工具栏。但是它不会取代旧的第二个工具栏。所以现在我在第二个工具栏中有两个菜单,旧菜单和新菜单。
有没有办法让我只能在第二个工具栏上显示新菜单? 谢谢。