我有一个以MasterDetailPage为根页的项目。当我在Detailpage中深入导航时,我遇到了问题,DetailPage导航会覆盖MasterPage的操作栏。我可以同时在操作栏,汉堡菜单和后退按钮中使用吗?
导航前: here 导航后:
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();
}
}
答案 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; }));
}