使用Xamarin表单 - 如何将按钮单击与滑动手势相关联?

时间:2016-11-22 11:56:34

标签: android ios xamarin.forms swipe-gesture hamburger-menu

我有一个使用主详细信息页面和其中的导航页面的应用程序。在Android上,当您通过汉堡菜单导航到帐户页面时,导航栏会按预期保留在屏幕顶部,以便您可以使用它进行导航。在iOS上,导航栏消失,因此我创建了一个带有汉堡菜单图标的自定义栏。当有人点击自定义导航栏上的图标时,我希望汉堡菜单从左侧滑出。

我已将手势识别器附加到汉堡图标上,但我不知道在调用的方法中放入什么以使其执行滑动操作。

第二页上的导航栏:

<StackLayout IsVisible="{Binding _isiPhone}" Orientation="Horizontal" BackgroundColor="#008334">
    <Image Source="burger.png" HorizontalOptions="StartAndExpand">
       <Image.GestureRecognizers>
          <TapGestureRecognizer Tapped="Burger_Clicked"></TapGestureRecognizer>
       </Image.GestureRecognizers>
    </Image>
</StackLayout>

事件处理程序:

private void Burger_Clicked(object sender, EventArgs e)
{
}

android视图:

android view

android burger菜单视图:

android burger menu

iOS视图(使用自定义导航栏):

iOS view

iOS汉堡菜单:

iOS burger menu

1 个答案:

答案 0 :(得分:0)

您可以将MasterDetail页面上的“IsPresented”属性设置为True / False,以使侧面菜单显示/隐藏。 请重新考虑是否真的需要自定义栏,因为标准控件应该是用户习惯的东西。

另请注意,建议使用主页面的内容页面,您可以根据需要使用NavigationPage / TabPage / ContentPage进行详细页面。

有关详细信息,请参阅official docs