2016-08-24 54 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

相關問題