Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 每次在Xamarin表单中使用NavigationPage时都会出现新实例?_C#_Xamarin_Xamarin.forms - Fatal编程技术网

C# 每次在Xamarin表单中使用NavigationPage时都会出现新实例?

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

假设我有3个Xaml视图,我使用MasterDetailPage和NavigationPage来回导航到这些页面。A页->B页->C页->

我使用PushAsync来执行导航。没什么大不了的

我以两种方式执行:

1-每次在导航上创建这些视图的新实例:

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
,是的,我建议每次都像一些构造函数一样创建新页面。你知道如何测量吗?我不知道如何测试性能,但我这样做,从来没有遇到过问题。。静态值可能很烦人,因为您必须小心使用值。。