我有一个Xamarin Forms应用程序,我在OnStart期间将MainPage设置为NavigationPage NavigationPage是静态(保留在内存中以供重复使用) 当我按下Android中的后退按钮并返回应用程序时,再次执行OnStart方法,应用程序显示一个空白屏幕。
请在此处查看repro:Xamarin.Forms OnStart Navigation
public partial class App : Application
{
private static readonly NavigationPage NavigationPage = new NavigationPage(new MainPage());
public App ()
{
InitializeComponent();
}
protected override void OnStart()
{
MainPage = NavigationPage;
}
}
如果我在构造函数中执行相同的操作,则应用程序按预期运行:没有空白屏幕,并且显示最后访问的页面。
请在此处查看repro:Xamarin.Forms Constructor Navigation
public partial class App : Application
{
private static readonly NavigationPage NavigationPage = new NavigationPage(new MainPage());
public App ()
{
InitializeComponent();
MainPage = NavigationPage;
}
}
在构造函数和OnStart方法中设置MainPage有什么区别?
答案 0 :(得分:3)
你不要在初始调用之外初始化的静态主页的onstart中这样做。
在InitializeComponents之后在构造函数中执行。
像这样:
public partial class App : Application
{
private static readonly NavigationPage NavigationPage;
public App ()
{
InitializeComponent();
NavigationPage = new NavigationPage(new MainPage());
MainPage = NavigationPage;
}
}