我有一个标签页,上面有两个页面,第1页和第2页。标签页打开时,它正确显示第1页,并且标题栏显示在第1页标题下。然后选择第2页,第2页是正确显示,并且该栏位于第 2 页标题下方。
如果我选择第 2 页,请关闭该页面。然后重新打开(选项卡式页面的新实例),第 1 页正确显示,但第 1 页标题和第 2 页标题下方都有栏!
这是 TabbedPage 代码:
namespace MauiTestApp;
public class MyTabbedPage : TabbedPage
{
public MyTabbedPage()
{
ContentPage page1 = new ContentPage();
page1.Title = "Page 1";
ContentPage page2 = new ContentPage();
page2.Title = "Page 2";
this.Children.Add(page1);
this.Children.Add(page2);
ToolbarItems.Add(new ToolbarItem("Back", null, async () =>
{
await Navigation.PopModalAsync(true);
}));
}
}
起始页 - 将您的主页设置为其新实例:
namespace MauiTestApp;
public class StartPage : ContentPage
{
public StartPage()
{
Button tabbedPageButton = new Button();
tabbedPageButton.Text = "Open Tabbed Page";
tabbedPageButton.Clicked += TabbedPageButton_Clicked;
Content = new VerticalStackLayout
{
Children = { tabbedPageButton
}
};
}
private async void TabbedPageButton_Clicked(object? sender, EventArgs e)
{
await Navigation.PushModalAsync(new NavigationPage(new MyTabbedPage()));
}
}
我已将其记录在 GitHub 上 - https://github.com/dotnet/maui/issues/26069 - 但如果有人能想出一种方法来解决这个问题(毫无疑问,修复还需要几个月的时间) )我将非常感激!
这是我的解决方案。回到默认的第一项。
ToolbarItems.Add(new ToolbarItem("Back",null,async () =>{
this.CurrentPage = this.Children[0];
await Navigation.PopModalAsync(true);
}));