Xamarin.Forms MasterDetailPage,其中一部分母版在细节上可见

时间:2018-09-13 12:55:05

标签: xamarin xamarin.forms

我想将母版页面的一小部分推(显示)到详细信息页面,例如下面链接中的图片。 Xamarin.Forms中可以吗?
Before swipe
After swipe

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

设置

<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;
}

答案 1 :(得分:0)

这是可能的,但需要做很多工作,因为您无法直接访问MasterDetailView的宽度。

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

基本上步骤是

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

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