2015-12-22 7 views
8

qual è la differenza tra 2 implementazioni di seguito?Android consente solo una pagina di navigazione sullo schermo alla volta utilizzando

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

se la mia pagina principale eredita MasterDetailPage, primo codice di cui sopra funzionerà, ma secondo uno restituirà il messaggio di errore che mi diceva che "Android consente una sola pagina di navigazione sullo schermo in un momento" in cui il debug mio app Android.

public class MainPage : MasterDetailPage 
    { 

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

risposta

8

Potrei essere un po 'confuso da quello che si sta chiedendo, ma se si sta facendo

MainPage = new NavigationPage(new MainPage()); 

E il vostro MainPage è

public class MainPage : MasterDetailPage 
{ 

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

allora si sta facendo

NavigationPage > MasterDetailPage> NavigationPage

O MasterDetail o Navigation dovrebbero essere la radice e non averli uno dentro l'altro. Non è possibile avere 2 pagine di navigazione l'una nell'altra.

+0

hai capito bene. prima mi ero implementato in quel modo e stavo ricevendo questo messaggio di errore. Ho risolto il problema dopo la modifica a MainPage = new Views.MainPage(); che in realtà sta reindirizzando verso la stessa contentpage ma non ho capito qual è la differenza. alla fine entrambi stanno facendo la navigazione in MainPage o no? – batmaci

+1

Puoi avere una pagina di navigazione come Dettaglio in un MasterDetail oppure puoi avere MasterDetail all'interno di una Pagina di Navigazione, ma non puoi avere una pagina di navigazione all'interno di una pagina di navigazione a nessun livello. Questa è una restrizione solo per Android, ma alla fine la rende una restrizione di Xamarin Form. –

+0

grazie per aver spiegato. è chiaro ora, ma cosa significa? MainPage = new Views.MainPage(); Immagino che app.css sia come app.xaml in WPF, giusto? se è sì, non significa anche una navigazione su MainPage? – batmaci

Problemi correlati