2015-12-22 9 views
8

jaka jest różnica między 2 implementacjami poniżej?Android pozwala tylko na jedną stronę nawigacyjną na ekranie naraz, używając

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

jeśli moja strona główna dziedziczy MasterDetailPage, 1. powyższy kod będzie działać, ale 2 jeden zwróci komunikat o błędzie, mówiąc mi, że „Android pozwala tylko na jedną stronę nawigację na ekranie na raz”, gdy debugować mojego Android app.

public class MainPage : MasterDetailPage 
    { 

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

Odpowiedz

8

mogę być nieco zdezorientowani co prosicie, ale jeśli robisz

MainPage = new NavigationPage(new MainPage()); 

A twój tytułowa jest

public class MainPage : MasterDetailPage 
{ 

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

Potem robisz

NavigationPage > MasterDetailPage> NavigationPage

Albo MasterDetail, albo Nawigacja powinny być rootem i nie mieć ich w sobie nawzajem. Nie możesz mieć dwóch stron nawigacyjnych w sobie nawzajem.

+0

zrozumiałeś poprawnie. Najpierw zaimplementowałem tak i otrzymałem ten komunikat o błędzie. Naprawiłem po zmianie na MainPage = new Views.MainPage(); który faktycznie przekierowuje do tej samej strony treści, ale nie rozumiem jaka jest różnica. ostatecznie obie robią nawigację do MainPage czy nie? – batmaci

+1

Możesz mieć stronę nawigacyjną jako Szczegóły w MasterDetail lub możesz mieć MasterDetail na Stronie Nawigacji, ale nie możesz mieć strony nawigacyjnej na stronie nawigacyjnej na żadnym poziomie. Jest to ograniczenie wyłącznie dla systemu Android, ale w końcu stanowi ono ograniczenie Xamarin Forms. –

+0

dzięki za wyjaśnienie. jest to teraz jasne, ale co to oznacza? MainPage = new Views.MainPage(); Przypuszczam, że app.css jest jak app.xaml w WPF, prawda? jeśli tak, czy nie oznacza to również nawigacji do strony głównej? – batmaci