我试图拦截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。
有什么建议吗?
答案 0 :(得分:0)
我不明白您是问xamarin.forms还是xamarin.android。 对于xamarin.forms
您可以像这样从登录页面导航到主页
Navigation.InsertPageBefore(new MainPage(), this);
Navigation.PopAsync();
并在您的App.xaml.cs
中 MainPage = new NavigationPage(new Login());