Xamarin.Forms MasterDetailPage,其中部分母版在详细信息中可见

Posted

技术标签:

【中文标题】Xamarin.Forms MasterDetailPage,其中部分母版在详细信息中可见【英文标题】:Xamarin.Forms MasterDetailPage with part of master visible on detail 【发布时间】:2018-09-13 12:55:05 【问题描述】:

我想将母版页的一小部分(使其可见)推送到详细信息页面,例如下面链接中的图片。在 Xamarin.Forms 中是否可行?Before swipeAfter swipe

我将不胜感激。

【问题讨论】:

【参考方案1】:

设置

<ContentPage NavigationPage.HasNavigationBar="False">

放置一个看起来像图像中显示的侧边菜单的 StackLayout 或 Grid。向其添加轻击手势识别器。

slMenu.GestureRecognizers.Add(new TapGestureRecognizer

     Command = new Command(() => ShowSideMenu(masterPage)),
);


private void ShowSideMenu(MasterDetailPage masterPage)

    masterPage.IsPresented = !masterPage.IsPresented;

【讨论】:

【参考方案2】:

这是可能的,但需要相当多的工作,因为您不能直接访问 MasterDetailView 的宽度。

在另一篇文章(参见How to set width for MasterDetailPage in xamarin forms)中,我描述了如何更改 MasterDetail 视图的宽度。 在实现这一点时,我遇到了您想要的行为,尽管对我来说这是一个错误。

基本上步骤是

实现 MasterDetail 视图的自定义版本,您可以在其中设置自定义宽度 更改主视图的宽度,使其比应有的宽一些 在折叠和展开视图时调整计算,以免它们折叠整个宽度

例如,如果您的主视图的宽度为 340,并且您希望显示最后 40 个,请确保在折叠时它“仅”移动 300

【讨论】:

以上是关于Xamarin.Forms MasterDetailPage,其中部分母版在详细信息中可见的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms 手势密码实现

Xamarin.Forms 和 Xamarin Native 有啥区别? [关闭]

如何使用 Xamarin.Forms.Maps(无 Xamarin.Forms.GoogleMaps)在地图中应用样式或更改颜色

Xamarin Forms Prism:prism ResourceDictionary 中已存在具有键“Xamarin.Forms.NavigationPage”的资源

Xamarin.Forms.Forms.Init(e) Onlaunched 中的 FileNotFoundExeception

如果调用方未使用 Xamarin.Forms,Xamarin 依赖项服务能否正常工作?