private void OnNewToolbarRequest(ToolbarRequestMessage request) { switch (request) { case ToolbarRequestMessage.ShowSaveButton: Toolbar.Menu.Add(0, (int)ToolbarActionMessage.ClickedSaveButton, 0, "Save") .SetIcon(Resource.Drawable.icon_save) .SetShowAsAction(ShowAsAction.Always); break; case ToolbarRequestMessage.ResetToolbar: Toolbar.Menu.Clear(); break; case ToolbarRequestMessage.ShowSearchInterface: Toolbar.Post(() => { _searchView = new SearchView(this) { LayoutParameters = new Toolbar.LayoutParams( ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent) }; _searchView.MaxWidth = int.MaxValue; _searchView.FindViewById <TextView>(Resource.Id.search_src_text).SetOnEditorActionListener( new OnEditorActionListener( tuple => { Messenger.Default.Send(new SearchQueryMessage(_searchView.Query)); })); Toolbar.Menu.Add(0, -1, 0, "Search") .SetActionView(_searchView) .SetIcon(Resource.Drawable.icon_search) .SetOnActionExpandListener(this) .SetShowAsActionFlags(ShowAsAction.CollapseActionView | ShowAsAction.IfRoom); }); break; default: throw new ArgumentOutOfRangeException(nameof(request), request, null); } }