问题描述
我正在处理汉堡菜单和底部标签栏项目。下面是我的 AppShell.xaml 文件。
<!-- LoginPage -->
<ShellContent Route="login"
ContentTemplate="{DataTemplate local:LoginPage}">
</ShellContent>
<FlyoutItem Route="about" FlyoutdisplayOptions="AsMultipleItems">
<ShellContent Title="About" Icon="icon_about.png" Route="AboutPage" ContentTemplate="{DataTemplate local:AboutPage}" />
<ShellContent Title="browse" Icon="icon_Feed.png" ContentTemplate="{DataTemplate local:ItemsPage}" />
</FlyoutItem>
目前在弹出菜单和底部选项卡中显示相同的项目。但是根据我在弹出菜单中的要求,我必须显示 AboutPage 和 browse 页面,并且在底部选项卡中我必须显示 Market Tab 和 Address 选项卡。但它在底部选项卡中仅显示“关于”选项卡和“浏览”选项卡。谁能告诉如何在底部标签中显示不同的项目?
提前致谢。
解决方法
您可以使用 MenuItem
在弹出窗口中显示项目。并使用 FlyoutItem
在底部标签栏中显示标签,而无需将 FlyoutDisplayOptions
属性设置为 AsMultipleItems
。
XML:
<MenuItem
Command="{Binding AboutCommand}"
Icon="tab_about.png"
Text="About" />
<FlyoutItem>
<ShellContent Title="Market" ContentTemplate="{DataTemplate local:Market}" />
<ShellContent Title="Address" ContentTemplate="{DataTemplate local:Address}" />
</FlyoutItem>
背后的代码:
public ICommand AboutCommand => new Command(async () => await NavigatedToAbout());
async Task NavigatedToAbout()
{
await Shell.Current.GoToAsync("about");
}
public AppShell()
{
InitializeComponent();
Routing.RegisterRoute("about",typeof(AboutPage));
BindingContext = this;
}
截图: