【发布时间】:2021-11-19 20:35:56
【问题描述】:
我正在寻找使我的 Xamarin Forms 应用程序更快的技巧,我遇到了这个article。好吧,我在那里尝试了一些选项,但我发现很难实现最后一个选项;
- 预加载屏幕:这大大提高了应用程序的性能 本身我们所做的是在每个屏幕、背景、视图上加载 以及接下来需要的视图模型,因此当将它们推送到 他们已经加载了导航堆栈。这减少了很多 页面之间的过渡时间。
在我看来这是一个不错的选择,我所做的是将我可能需要的页面插入到堆栈中,然后像这样导航到页面;但是,我不知道我这样做是否正确。
public ProductHomePageViewModel()
{
Application.Current.MainPage.Navigation.InsertPageBefore(new TilePage(), Application.Current.MainPage.Navigation.NavigationStack[0]);
}
但这在主页上完成时效果不佳,点击后退按钮应退出应用程序。但在这种情况下,单击后退按钮会导航到堆栈中的下一页。
请帮助我了解如何预加载页面。任何建议都是好的。谢谢!
【问题讨论】:
-
你粘贴的代码确实不行。使用
InsertPageBefore只是更改导航堆栈并执行您所说的操作,当您按下后退按钮时,它会转到“上一个”页面。实现您想要的一种方法可能是在后台创建页面实例并将其保存在内存中。然后只需推送创建的页面 -
你的想法价值超过一百万美元@Juan Sturla。请问我该怎么做,任何示例代码都会对我有很大帮助。我从未尝试过。
-
通常我们使用
Navigation.PushAsync(new MyPage())。但是我们可以将其分为两个步骤:MyPage pageVar= new Page();并在另一个步骤中执行Navigation.PushAsync(pageVar)该 pageVar 可以在您的代码中的任何位置。你甚至可以实现类似Singleton -
创建 MyPage 实例时请注意,因为 MyPage 的构造函数只会运行一次
标签: c# xamarin xamarin.forms xamarin.android xamarin.ios