如果第一页不是导航页面,则在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更改为"导航"页面的root应用程序页面。但这为时已晚,已经调用了OnPostCreate或OnRemume,FindViewById(resource.id.toolbar)返回null。

任何建议?

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

您可以从登录页面导航到mainpage

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

和您的app.xaml.cs

 MainPage = new NavigationPage(new Login());

相关内容

最新更新