2015-12-22 3 views
8

В чем разница между двумя реализациями ниже?Android позволяет только одну страницу навигации на экране, используя

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

если моя главная страница наследует MasterDetailPage, первый выше код будет работать, но второй один будет возвращать сообщение об ошибке говорит мне, что «Android позволяет только одну страницу навигации на экране в то время,» когда я отлаживать приложение для Android.

public class MainPage : MasterDetailPage 
    { 

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

ответ

8

я мог бы быть немного смущает то, что вы спрашиваете, но если вы делаете

MainPage = new NavigationPage(new MainPage()); 

И ваш MainPage является

public class MainPage : MasterDetailPage 
{ 

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

Тогда вы делаете

NavigationPage > MasterDetailPage> NavigationPage

Либо MasterDetail, либо Navigation должны быть корнем и не иметь их внутри друг друга. У вас не может быть двух страниц навигации.

+0

вы поняли правильный. сначала я реализовал это, и я получил это сообщение об ошибке. Я исправил после того, как я перешел на MainPage = new Views.MainPage(); который фактически перенаправляется на ту же страницу контента, но я не понял, в чем разница. в конце концов, оба делают навигацию к MainPage или нет? – batmaci

+1

У вас может быть страница навигации в виде деталя в MasterDetail, или вы можете иметь MasterDetail внутри навигационной страницы, но вы не можете иметь страницу навигации на странице навигации на любом уровне. Это ограничение только для Android, но в конце концов это ограничение Xamarin Forms. –

+0

спасибо за объяснение. теперь ясно, но что это значит? MainPage = new Views.MainPage(); Я предполагаю, что app.css похож на app.xaml в WPF, правильно? если это да, разве это не означает навигацию к MainPage? – batmaci

Смежные вопросы