我试图拦截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());