Как восстановить стек навигации после приостановки/возобновления страницы в Xamarin.Forms

Я просто привыкаю к ​​Xamarin.Forms и не могу найти стандартный способ восстановления стека навигации после приостановки/восстановления (например, при повороте устройства).

Я использую MVVM с материалом Xamarin.Forms.Labs, поэтому я могу получить IXFormsApp и получить триггеры для Resumed и т. д., но я не понимаю, как мне восстановить стек навигации в моем приложении?

Например, если у меня есть HomeView и HomeViewModel, у которых есть представление списка элементов. Кто-то щелкает элемент представления списка, и он переходит к моему ItemView и ItemViewModel. Затем пользователь поворачивает экран — как мне вернуть их туда, где они только что были?

Может кто-то указать мне верное направление?

Спасибо

Мэтт


person Matt Whetton    schedule 27.10.2014    source источник


Ответы (1)


Оказывается, текущий ответ на это с Xamarin.Forms 1.2 (и, возможно, 1.3) заключается в том, чтобы добавить следующие изменения в вашу активность Android.

Где ваша MainActivity выглядела бы так:

[Activity(Label = "SomeName", MainLauncher = true, Theme = "@android:style/Theme.Holo.Light")]
public class MainActivity : XFormsApplicationDroid
{
...
}

Вам нужно сообщить Android, чтобы он не уничтожал и не восстанавливал вашу активность при изменении размера экрана или ориентации:

[Activity(Label = "SomeName", MainLauncher = true, Theme = "@android:style/Theme.Holo.Light", ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : XFormsApplicationDroid
{
...
}

Xamarin.Forms будет обрабатывать некоторые изменения ориентации в своих собственных макетах.

person Matt Whetton    schedule 30.10.2014