2015-12-22 13 views
8

以下の2つの実装の違いは何ですか?使用して、一度に画面上の1つのナビゲーションページを許可しますか私のメインページはMasterDetailPageを継承する場合Androidが唯一

public App() 
    { 
     // The root page of your application 
     MainPage = new Views.MainPage(); 
    } 
public App() 
    {  
     MainPage = new NavigationPage(new MainPage()); 
    } 

は、上記第一のコードは動作しますが、第二一つは、私は私のAndroidアプリをデバッグするとき、「アンドロイドは一度に画面上の1つのナビゲーションページを許可する」ことを私に伝えるエラーメッセージを返します。

public class MainPage : MasterDetailPage 
    { 

     MasterPage masterPage; 
     public MainPage() 
     { 
      masterPage = new MasterPage(); 
      Master = masterPage; 
      Detail = new NavigationPage(new AnotherPage()); 

答えて

8

私は少しあなたが求めているものがありますが

MainPage = new NavigationPage(new MainPage()); 

を行っている場合そして、あなたのメインページが次にあなたが

NavigationPageを

public class MainPage : MasterDetailPage 
{ 

    MasterPage masterPage; 
    public MainPage() 
    { 
     masterPage = new MasterPage(); 
     Master = masterPage; 
     Detail = new NavigationPage(new AnotherPage()); 

やっているのさによって混同される可能性があります> MasterDetailPage> NavigationPage

MasterDetailまたはNavigationのいずれかがルートであり、相互に内在していない必要があります。お互いに2つのナビゲーションページを持つことはできません。

+0

ご理解いただけます。まず、私はそのような実装をして、私はこのエラーメッセージを受け取りました。私はMainPage = new Views.MainPage()に変更した後に修正しました。実際には同じコンテンツページにリダイレクトされていますが、違いは何かを理解できませんでした。最終的には両方ともMainPageへのナビゲーションを行っているのですか? – batmaci

+1

ナビゲーションページをMasterDetailのDetailとして使用することも、MasterDetailをナビゲーションページ内に含めることもできますが、どのレベルのナビゲーションページ内にナビゲーションページを置くことはできません。これはAndroidのみの制限ですが、最終的にはXamarin Formsの制限になっています。説明をありがとう。 –

+0

それは今はっきりしていますが、これはどういう意味ですか? MainPage =新しいViews.MainPage(); app.cssはWPFのapp.xamlに似ていると思いますか?それが「はい」の場合は、MainPageへのナビゲーションも同様ですか? – batmaci

関連する問題