我有一个包含以下构造函数的MasterDetailPage:
public MainPage()
{
NavigationPage.SetHasNavigationBar(this, false);
NavigationPage.SetHasBackButton(this, false);
InitializeComponent();
MessagingCenter.Subscribe<JobsPage>(this, "OpenMenu", (sender) => {
IsPresented = true;
});
MasterPage.ListView.ItemSelected += ListView_ItemSelected;
this.MasterBehavior = MasterBehavior.Popover;
App.NavPage = new NavigationPage(new JobsPage() { Title = "Jobs" });
Detail = App.NavPage;
}
如您所见,我将SetHasNavigationBar
和SetHasBackButton
设为false。
在不同的页面(ContentPage,而不是MasterDetailPage)上,我在构造函数中做了同样的事情:
NavigationPage.SetHasNavigationBar(this, false);
NavigationPage.SetHasBackButton(this, false);
InitializeComponent();
在我的ContentPage
上,此功能正常,如下所示。
但是,在我的MasterDetailPage
上,我仍然看到导航栏。
我该如何解决这个问题?
答案 0 :(得分:1)
不确定导航的结构如何,但请尝试以下方法:
public MainPage()
{
InitializeComponent();
MessagingCenter.Subscribe<JobsPage>(this, "OpenMenu", (sender) => {
IsPresented = true;
});
MasterPage.ListView.ItemSelected += ListView_ItemSelected;
this.MasterBehavior = MasterBehavior.Popover;
var navPage = new NavigationPage(new JobsPage() { Title = "Jobs" });
NavigationPage.SetHasNavigationBar(navPage, false);
NavigationPage.SetHasBackButton(navPage, false);
App.NavPage = navPage;
Detail = App.NavPage;
}
答案 1 :(得分:0)
据我所知,Master-DetailPage不支持导航栏。它是您可以放置内容页面的根容器。这些页面现在可以包含一个导航栏,可以将您重定向到Master-DetailPage中的根页面。
答案 2 :(得分:0)
我遇到了类似的问题,我为此做了一个解决方案。
将细节设置两次。
// 1st time
var jobPage = new JobsPage() { Title = "Jobs" };
Detail = jobPage;
// 2nd time
var navPage = new NavigationPage(jobPage, false);
Detail = navPage;
在构造函数中设置1st,在OnAppearing中设置2nd。
试试吧。
答案 3 :(得分:0)
尝试在 MasterDetailPage 的详细信息页面中设置这些行
在代码后面
NavigationPage.SetHasNavigationBar(this, false);
在 xaml 中
NavigationPage.HasNavigationBar="False"