Xamarin Forms和MvvmCross中的主要详细信息页面

时间:2019-02-26 09:02:48

标签: xamarin.forms mvvmcross

我有一个Index.xaml页面,该页面具有以下PagePresentation:

[MvxMasterDetailPagePresentation(Position = MasterDetailPosition.Detail,
  WrapInNavigationPage = true, Title = "Demo")]

它将在导航栏中显示汉堡包图标,并且一切正常。

单击汉堡菜单时显示的菜单有:

[MvxMasterDetailPagePresentation(MasterDetailPosition.Master)]

现在,当我从详细信息页面导航到Detail.xaml时,我希望Detail.xaml在导航栏中显示向后箭头,但在这里它还显示了汉堡包图标。 Detail.xaml没有PagePresentation属性。

我使用以下代码导航至Index.xaml:

_navigationService.Navigate(typeof(DetailViewModel), parameter);

当我从Index.xaml中删除MvxMasterDetailPagePresentation时,汉堡菜单消失了,Detail.xaml 确实显示了向后箭头,但我需要Index.xaml中的汉堡图标。

我玩过PagePresentations,但无法正常工作。

如何实现所需的行为?

1 个答案:

答案 0 :(得分:0)

docs中所述:

  

位置| TabbedPosition |使用此设置页面的位置。它既可以是托管页面的根,也可以作为选项卡,成为TabbedPage中的页面

您在该页面上没有任何根目录,因此您的Index.xaml应该设置为:

[MvxMasterDetailPagePresentation(MasterDetailPosition.Root, WrapInNavigationPage = false)]

您的菜单:

[MvxMasterDetailPagePresentation(MasterDetailPosition.Master)]

您的详细信息:

[MvxMasterDetailPagePresentation(MasterDetailPosition.Detail, WrapInNavigationPage = true, NoHistory = true)]

Stars wars sample是查看它正常工作的好地方。

HIH