我在Xamarin Android中实现了一个应用程序,其中包含一个页面,一旦您单击操作栏按钮,就会出现一个包含工具栏的新对话框。
简化代码如下:
public class MyDialogFragment : MvxDialogFragment<MyDialogViewModel>
{
public MvxDialogFragment()
{
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
this.EnsureBindingContextIsSet(inflater);
var view = this.BindingInflate(Resource.Layout.dialog_view, null);
SetupToolbar(view);
return view;
}
private void SetupToolbar(View view)
{
Dialog.RequestWindowFeature((int)WindowFeatures.NoTitle);
Android.Support.V7.Widget.Toolbar toolbar = view.FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.dialog_toolbar);
((AppCompatActivity)Activity).SetSupportActionBar(toolbar);
Android.Support.V7.App.ActionBar actionBar = ((AppCompatActivity)Activity).SupportActionBar;
actionBar.Title = null;
HasOptionsMenu = true;
}
public override void OnCreateOptionsMenu(IMenu menu, MenuInflater inflater)
{
menu.Clear();
inflater.Inflate(Resource.Menu.menu_dialog, menu);
base.OnCreateOptionsMenu(menu, inflater);
}
public override bool OnOptionsItemSelected(IMenuItem item)
{
switch (item.ItemId)
{
(...)
}
}
public override void OnPrepareOptionsMenu(IMenu menu)
{
(...)
base.OnPrepareOptionsMenu(menu);
}
它的主要工作流程很好,但在显示对话框时旋转屏幕时会产生副作用。 如果我这样做,父片段(托管对话框的那个)的操作栏按钮会消失,直到我重新创建视图(即:旋转)。
有关如何解决此问题的任何想法?在对话框关闭后,我尝试了几个使父菜单无效的事情,但它没有用。
答案 0 :(得分:0)
经过一段时间调查问题,我认为没有办法以“本地方式”同时制作2个动作栏。
我的解决方案最终是通过第二个操作栏手动处理点击事件。
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://me@bitbucket.org/myRepo.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
希望它可以帮助任何人