如何在xamarin详细信息页面内深入导航

时间:2016-12-19 10:10:13

标签: xamarin xamarin.android xamarin.forms navigationbar master-detail

我有一个以MasterDetailPage为根页的项目。当我在Detailpage中深入导航时,我遇到了问题,DetailPage导航会覆盖MasterPage的操作栏。我可以同时在操作栏,汉堡菜单和后退按钮中使用吗?

导航前

here 导航后: before navigation

public partial class MasterPage : MasterDetailPage
{
    public MasterPage()
    {

        Master = SetMasterContentPage();
        Detail = new NavigationPage(new TaxonomyOverviewPage());
    }

    ContentPage SetMasterContentPage()
    {
        var masterPage = new ContentPage { Title = "Test"};
        masterPage.Content = new StackLayout
        {
            Children = {
                new Label{Text="Label1"},
                new Label{Text="Label2"},
                new Label{Text="Label3"}
            }
        };

        return masterPage;
    }

    protected override void OnAppearing()
    {
        base.OnAppearing();
    }
}

1 个答案:

答案 0 :(得分:2)

问题解决了。

我使用了一个公共静态MasterDetailPage并将其引用到App.cs中的MainPage。现在我可以访问MasterDetailPage的IsPresented属性。

public partial class App : Application
{
    public static MasterPage masterdetail;

    public App()
    {
     InitializeComponent();
    }

    protected override void OnStart()
    {
      masterdetail = new MasterPage();
      Device.BeginInvokeOnMainThread(() => {
       MainPage = masterdetail;
       });
    }

}

最后,我在操作栏的右侧添加了一个menuicon。

protected override void OnAppearing()
    {
        base.OnAppearing();
        ToolbarItems.Add(new ToolbarItem("Menu", "menuicon.png", () => { App.masterdetail.IsPresented = true; }));
    }