2016-12-02 5 views
2

私は3つのXamlのビューがあり、私はMasterDetailPageとNavigationPageを使って、それらのページを前後にナビゲートするとします。ページA - >ページB - >ページC - > ...XamarinフォームでNavigationPageを使用するたびに新しいインスタンスが表示されますか?

私は、PushAsyncを使用してナビゲーションを実行します。作成 -

await Navigation.PushAsync(new Views.PageA()); 

2:それらのビューのナビゲーション上のすべての時間の新しいインスタンスを作成します -

1:大した...

は、私は2つの方法であることimplemmentありません各ページの静的プロパティ(Appビューで)と私はそれをナビゲーションのために使用します:

public static Views.PageA PageA 
    { 
     get 
     { 
      if (_pageA == null) 
      { 
       _pageA = new Views.PageA(); 
      } 

      return _pageA =; 
     } 
    } 


await Navigation.PushAsync(App.PageA); 

これを行う別の方法はありますか?毎回静的または新しいインスタンスを使用しますか?

私の懸念は、パフォーマンスとmemmoryの使用についてです。

あなたの意見であなたの意見を聞かせてください。いくつかのコードは評価されます。

+0

「Android」でテストしていますか? –

+0

@AliBahraminezhad、iOSとAdroidの両方のシミュレータとデバイス –

+0

「iOS」と「Android」の両方で発生しても、Androidの「Activity」は常に再作成されます。回避策の1つは 'Singleton'です –

答えて

0

最も良い方法は、プッシュとポップを使用することです。 pushmodalasyncを使用して新しいルートページを作成できます(この場合はナビゲーションスタック数= 1)。ルートページ(navigationstack [0])に戻るにはpoptorootasyncを使用します。

+0

そして、私はいくつかのコンストラクタと同様に毎回新しいページを作成することをお勧めします。 –

+0

あなたはそれを非難する方法を知っていますか? –

+0

私はあなたがパフォーマンスをテストする方法を知っていませんが、私はそれをこのように行い、問題は一度もありません。静的な値はあなたの値に注意する必要があるので迷惑になることがあります.. –

関連する問題