如何在 Xamarin.Forms 中以编程方式使用 FlyoutMenu 加载详细信息页面,无需 App Shell?

问题描述 投票:0回答:3

我在没有 App Shell 的 Xamarin.Forms 中使用 Flyout 菜单,并且需要使用另一个详细信息页面中的简单按钮(以编程方式)从现有的已创建页面加载详细信息页面。我怎样才能实现这个?这个动作有什么机制吗?

xamarin.forms flyout
3个回答
0
投票

当然 - 您是否尝试在 Microsoft 文档 中找到示例?

假设您的应用程序主页是弹出页面(它应该是),那么您可以简单地调用:

((FlyoutPage)Application.Current.MainPage).Detail = myExistingPage

如果详细信息页面包装在

NavigationPage
中,您还可以将其用作自己的导航堆栈,在这种情况下您会这样做:

await ((FlyoutPage)Application.Current.MainPage).Detail.Navigation.PushAsync(myExistingPage);

0
投票

如果您想使用另一个详细信息页面的简单按钮(以编程方式)从现有的已创建页面加载详细信息页面,您可以使用下面的代码。

    private void Button_Clicked(object sender, EventArgs e)
    {
        FlyoutPage1 flyoutPage1 = new FlyoutPage1();

        var page = (Page)Activator.CreateInstance(typeof(Page3));
        page.Title = "Page3";

        flyoutPage1.Detail = new NavigationPage(page);
    
        Application.Current.MainPage = flyoutPage1;


    }

有关 FlyoutPage 的更多详细信息,您可以查看下面的链接。 导航栏下方的 AppShell 弹出窗口


0
投票

我像这样访问了弹出菜单。

private void BtnMenu_Clicked(object sender, EventArgs e)
{
     FlyoutPage flyout = App.Current.MainPage as FlyoutPage;
     if(flyout != null)
     {
         flyout.IsPresented = true;
     }  
 }
© www.soinside.com 2019 - 2024. All rights reserved.