如果首页不是导航页,请获取Xamarin.Forms中的工具栏

时间:2019-02-14 14:11:10

标签: xamarin.forms

我试图拦截Android中的软件后退按钮。我遵循几个添加了这些示例的示例:

protected override void OnPostCreate(Bundle savedInstanceState)
{
    var toolBar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
    SetSupportActionBar(toolBar);
    base.OnPostCreate(savedInstanceState);
}

protected override void OnResume()
{
    Android.Support.V7.Widget.Toolbar toolbar = this.FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
    if (toolbar != null)
        SetSupportActionBar(toolbar);

    base.OnResume();
}

然后使用OnOptionItemSelected来获取软件后退按钮事件。

但是这不起作用,因为对我而言,应用程序的第一页是不属于NavigationPage的登录页。成功登录后,我将Application.Current.MainPage更改为根应用程序页面,即NavigationPage。但是为时已晚,已经调用了OnPostCreate或OnResume,并且FindViewById(Resource.Id.toolbar)返回null。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我不明白您是问xamarin.forms还是xamarin.android。 对于xamarin.forms

您可以像这样从登录页面导航到主页

Navigation.InsertPageBefore(new MainPage(), this);
 Navigation.PopAsync();

并在您的App.xaml.cs

 MainPage = new NavigationPage(new Login());