У меня есть приложение Xamarin Forms, в котором я настраиваю MainPage на NavigationPage во время OnStart.
NavigationPage имеет значение static (хранится в памяти для повторного использования).
Когда я нажимаю кнопку назадНажмите кнопку в Android и вернитесь к приложению, метод OnStart будет выполнен снова, и приложение отобразит пустой экран.
См. репродукцию здесь: 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;
}
}
Если я выполняю те же действия в конструкторе, приложение ведет себя так, как и ожидалось: пустой экран отсутствует и отображается последняя посещенная страница.
См. Здесь репродукцию: Навигация конструктора Xamarin.Forms
public partial class App : Application
{
private static readonly NavigationPage NavigationPage = new NavigationPage(new MainPage());
public App ()
{
InitializeComponent();
MainPage = NavigationPage;
}
}
В чем разница между настройкой MainPage в конструкторе и в методе OnStart?