2016-06-17 15 views
0

Ich habe eine MasterDetailPage (genannt RootPage) und ContentPage (MainPage) .ContentPage Title-Eigenschaft ist auf "Dies ist die Hauptseite" und ich navigiere mit NavigationService mit dem folgenden Code :Update MasterDetailPage den Header auf Android mit Prism für Xamarin Forms

await navigationService.NavigateAsync("RootPage/MainPage"); 

Was ich zu erwarten ist Content Titel des Masterdetails per Kopf, aber es sagt, ‚MainActivity‘ jedes Mal.

Ist das eine Art Plattformverhalten? Wenn nicht, wie setze ich den Header der MasterDetailPage auf ein bestimmtes Objekt?

Antwort

0

In unserer App ist der Titel der Seiten korrekt im 'Header' der MasterDetail gesetzt. Nach dem Start navigieren wir wie folgt aus:

NavigationService.Navigate("RootPage/DetailsNavigationPage/MainPage")

Wenn modeless Navigation weiter unten, werden die neuen Seiten auch geladen in den ‚Details‘ des Masterdetail und deren Titel angezeigt:

NavigationService.Navigate("AnotherPage", null, false);

Die DetailsNavigation Seite ist eine einfache Seite, die wie folgt aussieht:

<?xml version="1.0" encoding="utf-8" ?> <NavigationPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms" prism:ViewModelLocator.AutowireViewModel="True" x:Class="SomeNameSpage.Views.DetailsNavigationPage" BarBackgroundColor="Accent"> </NavigationPage>

Und das Masterdetail sieht wie folgt aus:

<?xml version="1.0" encoding="utf-8" ?> <MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms" prism:ViewModelLocator.AutowireViewModel="True" x:Class="SomeNameSpace.Views.RootPage"> <MasterDetailPage.Master> <ContentPage Title="Default"><!--Must have a Title, otherwise crashes according to https://developer.xamarin.com/guides/xamarin-forms/user-interface/navigation/master-detail-page/--> <StackLayout> <Button Text="Main Page" Command="{Binding NavigateCommand}" CommandParameter="DetailsNavigation/MainPage" /> <Button Text="Some Page" Command="{Binding NavigateCommand}" CommandParameter="DetailsNavigation/SomePage" /> </StackLayout> </ContentPage> </MasterDetailPage.Master> </MasterDetailPage>