【问题标题】:How to restore the navigation stack after page suspend / resume in Xamarin.Forms如何在 Xamarin.Forms 中的页面暂停/恢复后恢复导航堆栈
【发布时间】:2014-10-27 19:39:24
【问题描述】:
我刚刚习惯了 Xamarin.Forms,似乎找不到在暂停/恢复后恢复导航堆栈的标准方法(比如设备旋转时)。
我正在使用 MVVM 和 Xamarin.Forms.Labs 的东西,所以我可以获得一个 IXFormsApp,并获得 Resumed 等的触发器,但我不明白我打算如何恢复我的应用程序中的导航堆栈?
例如,如果我有我的 HomeView 和 HomeViewModel,它有一个项目的列表视图。有人单击列表视图项,它导航到我的 ItemView 和 ItemViewModel。然后用户旋转屏幕 - 我如何将它们恢复到原来的位置?
谁能指出我正确的方向?
谢谢
马特
【问题讨论】:
标签:
c#
xamarin.ios
xamarin
xamarin.forms
【解决方案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 将在其自己的布局中处理一定程度的方向更改。