2016-08-24 53 views
0

我正在创建一个Xamarin应用程序,我想要合并多个页面,MasterDetailPageNavigationPageXamarin中的MasterDetailPage和NavigationPage组合

我的MainPage包含MasterDetailPageMasterDetailPage的主人包含用户可以查看的视图列表(用于存储信息的定制类,例如类类型,要显示的图像和名称)。那些意见都是ContentPage s。点击列表中的项目后,ContentPage通过反射进行初始化,然后存储在MasterDetailPage中。目前一切都是按照Xamarin的建议。

但是其中之一ContentPages包含ListView

Example of the ListView

当已经选择了一个项目,该ListView有打开的DetailView和用户必须能够返回到ListView。正因为如此,我使用Navigation类和NavigationPage内推页面,如下(结合可以做的更好,但它只是为了获得与Xamarin的感觉):

private async Task Handle_ItemSelected(object sender, Xamarin.Forms.SelectedItemChangedEventArgs e) 
{ 
     if (_detail == null) 
     { 
      _detail = new Detail(); 

     } 
     _detail.BindingContext = SelectedTrack; 
     await Navigation.PushAsync(new NavigationPage(_detail)); 
} 

如果这样做了, 返回按钮呈现在MasterDetailPage之上。

Example of the NavigationPage

有什么办法去ListView的详细信息页面时,我可以删除MasterDetailPage的“汉堡”按钮?或者我目前使用错误的工作流程?

回答

0

将您的详细页面设置为NavigationPage。

_masterDetailPage.Detail = new NavigationPage(page); 

或者

MainPage = new MasterDetailPage 
      { 
       Master = new MyMasterPage(), 
       Detail = new NavigationPage(MyHomePage()) 
      }); 

,然后在从您可以浏览到其他网页详细视图:

await Navigation.PushAsync(new NavigationPage(_detail)); 

你会看到后退按钮,而不是汉堡包。

看一看sample

+0

MasterDetailPage的Detail属性中的页面已经在导航页面中。 – Echarnus

+0

我已经添加了一个示例项目,请看看。 –

+0

对不起,迟到的答案,没有太多时间。我看了你的例子,我确实把页面放在了一个导航页面的细节中。 – Echarnus

相关问题