C# 每次在Xamarin表单中使用NavigationPage时都会出现新实例?
假设我有3个Xaml视图,我使用MasterDetailPage和NavigationPage来回导航到这些页面。A页->B页->C页-> 我使用PushAsync来执行导航。没什么大不了的 我以两种方式执行: 1-每次在导航上创建这些视图的新实例:C# 每次在Xamarin表单中使用NavigationPage时都会出现新实例?,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,假设我有3个Xaml视图,我使用MasterDetailPage和NavigationPage来回导航到这些页面。A页->B页->C页-> 我使用PushAsync来执行导航。没什么大不了的 我以两种方式执行: 1-每次在导航上创建这些视图的新实例: await Navigation.PushAsync(new Views.PageA()); public static Views.PageA PageA { get { if
await Navigation.PushAsync(new Views.PageA());
public static Views.PageA PageA
{
get
{
if (_pageA == null)
{
_pageA = new Views.PageA();
}
return _pageA =;
}
}
await Navigation.PushAsync(App.PageA);
2-为每个页面创建一个静态属性(在应用程序视图中),我将其用于导航:
await Navigation.PushAsync(new Views.PageA());
public static Views.PageA PageA
{
get
{
if (_pageA == null)
{
_pageA = new Views.PageA();
}
return _pageA =;
}
}
await Navigation.PushAsync(App.PageA);
还有别的方法吗?每次使用静态或新实例?
我关心的是性能和内存使用
请您回答您的意见,我们将特别推荐一些代码。最好的方法是使用推送和弹出。您可以使用pushmodalasync创建新的根页面(在本例中,导航堆栈计数为1)。和poptorootasync返回到您的根页面(navigationstack[0])。您是否在
Android
上测试它?@AliBahraminezhad在iOS和Adroid模拟器和设备中都进行了测试?如果它在iOS
和Android
中都发生,我不会这样做,但Android活动
总是会被重新创建。解决方法之一是Singleton
,是的,我建议每次都像一些构造函数一样创建新页面。你知道如何测量吗?我不知道如何测试性能,但我这样做,从来没有遇到过问题。。静态值可能很烦人,因为您必须小心使用值。。