【问题标题】:Master detail page in Xamarin Forms and MvvmCrossXamarin Forms 和 MvvmCross 中的主详细信息页面
【发布时间】:2019-07-19 18:35:23
【问题描述】:

我有一个 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,但无法正常工作。

我怎样才能达到预期的行为?

【问题讨论】:

    标签: xamarin.forms mvvmcross


    【解决方案1】:

    正如docs 中所说:

    位置 |标签位置 |使用它来设置页面的位置。它可以是 Root 来承载 Pages,也可以作为 Tab 成为 TabbedPage 内的 Page

    您没有任何 Root 来托管页面,因此您的 Index.xaml 应设置为:

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

    您的菜单:

    [MvxMasterDetailPagePresentation(MasterDetailPosition.Master)]
    

    您的详细信息:

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

    Stars wars sample 是一个观察它工作的好地方。

    【讨论】:

      猜你喜欢
      • 2016-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-20
      • 2014-09-26
      • 2018-04-15
      • 1970-01-01
      • 2016-10-26
      相关资源
      最近更新 更多