У меня есть приложение Xamarin Forms, в котором я устанавливаю для MainPage значение NavigationPage во время OnStart.
NavigationPage является статическим (сохраняется в памяти для повторного использования).
Когда я нажимаю кнопку «Назад» в 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?