繁体   English   中英

如何使用 Xamarin forms shell 在 Flyout 项目和底部选项卡栏中显示不同项目?

[英]How to show different items in Flyout item and different items in bottom tab bar using Xamarin forms shell?

我正在研究汉堡菜单和底部标签栏项目。 下面是我的 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>

目前,相同的项目同时显示在弹出菜单和底部选项卡中。 但是根据我在 Flyout 菜单中的要求,我必须显示 AboutPage 和 Browse 页面,并且在底部选项卡中我必须显示 Market Tab 和 Address 选项卡。 但它仅在底部选项卡中显示“关于”选项卡和“浏览”选项卡。 谁能告诉如何在底部标签中显示不同的项目?

提前致谢。

您可以使用MenuItem来显示 Flyout 中的项目。 并使用FlyoutItem在底部标签栏中显示标签,而无需将FlyoutDisplayOptions属性设置为AsMultipleItems

Xaml:

<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;
    }

截屏:

预习

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM