android - 自 Xamarin.Forms 中的按钮以来,我如何获取功能或创建调用主详细信息页面或菜单的按钮?
问题描述
我制作了一个自定义导航栏,我想调用菜单,但由于我自己的菜单按钮按钮位于视图主页中
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:views="clr-namespace:Emprender.Views"
x:Class="Emprender.Views.MainPage"
MasterBehavior="Popover">
<MasterDetailPage.Master>
<views:MenuPage/>
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<NavigationPage.Icon>
<OnPlatform x:TypeArguments="FileImageSource">
<On Platform="iOS" Value="menu.png"/>
<On Platform="Android" Value="menu.png"/>
</OnPlatform>
</NavigationPage.Icon>
<x:Arguments>
<views:Home />
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
</MasterDetailPage>
解决方案
你想达到像下面的GIF这样的结果吗?
MasterDetailPage.IsPresented
您可以通过设置来打开菜单页面true
。
这是我在views:Home
页面中的代码。我不知道你想调用哪个地方的菜单页面。所以,我在两个地方添加它。
private void ToolbarItem_Clicked(object sender, EventArgs e)
{
MainPage.isMasterPres.IsPresented = true;
}
private void Button_Clicked(object sender, EventArgs e)
{
MainPage.isMasterPres.IsPresented = true;
}
在中MainPage
,我为So设置了一个公共静态值MasterDetailPage
,我们可以在主页视图中调用它。
public static MasterDetailPage isMasterPres;
public MainPage()
{
InitializeComponent();
isMasterPres = this;
MasterBehavior = MasterBehavior.Popover;
MenuPages.Add((int)MenuItemType.Browse, (NavigationPage)Detail);
}
您可以使用 messageCenter 来实现它,就像下面的线程一样。
推荐阅读
- excel - 向公式添加 IFERROR,以隐藏 #DIV/0
- mysql - 在mysql服务器中选择查询语法问题
- python-3.x - 如何处理未知数量的 nextTokens
- python - 如何减少导出到 Word 表格中的数据框中的行之间的行距?
- vba - 在 Word 文档中以编程方式导入宏
- reactjs - Next.js 重定向正则表达式不起作用
- r - svd(X) 中的错误:“x”中的值无限或缺失,但此处没有缺失值或无限值
- r - 是什么导致使用 cross() 函数在 filter() 中出现“找不到对象”错误?
- python - 如何为散景饼图添加额外的标签/图表名称
- python - 根据列名重新排序 Pandas 列