我正在将一个Xamarin Forms应用程序转换为MAUI。
在Android中,我发现如果我导航到另一页,我会失去顶部导航栏中的侧滑按钮(汉堡菜单按钮)。我还没有在iOS上尝试过,但我认为行为是相同的。
以下是我导航到我的初始页面的方式:
private void LaunchInitialPage(Page page)
{
FlyoutPage FlyoutPage = new FlyoutPage
{
Detail = new NavigationPage(page)
{
BarBackgroundColor = Helpers.Colors.BarBackgroundColor,
BarTextColor = Color.FromArgb("#ffffff")
},
Flyout = new MyDrawerMenu(),
FlyoutLayoutBehavior = FlyoutLayoutBehavior.Popover
};
((App)Application.Current).MainPage = FlyoutPage;
}
上述方法非常有效。我的页面已正确呈现,我也看到了汉堡菜单。
大多数情况下,当用户点击某个项目时,我希望“返回”按钮出现在页面的顶部。这个功能可行。但是有一些页面不需要返回按钮,所以我想将其删除并显示汉堡菜单。
以下是我的导航菜单长这样:
public async Task LaunchNextPage(Page page)
{
Page mdp = (((App)Application.Current).MainPage as FlyoutPage).Detail;
NavigationPage np = (NavigationPage)mdp;
NavigationPage.SetHasBackButton(page, false);
await np.PushAsync(page, true);
}
此代码已成功导航至第二页。返回按钮按预期工作,
NavigationPage.SetHasBackButton(page,false)
可从屏幕顶部的导航栏中删除返回按钮。但是,我没有看到汉堡菜单。我仍然可以从左侧滑动并显示菜单,但我真的想看到汉堡菜单出现在页面顶部。
我应该指出,在Xamarin.Forms中,这确实按照我的预期工作。只有在迁移到MAUI时才会看到此行为。
非常感谢任何帮助!
LaunchNextPage
没有按照我的预期工作。 - Mike LukenFlyoutPage.ShouldShowToobarButton()
的值吗? - Liyun Zhang - MSFT