代码之家  ›  专栏  ›  技术社区  ›  Laziale

Xamarin Shell中未设置活动Shell项

  •  0
  • Laziale  · 技术社区  · 5 年前

    我试图使用Xamarin中新引入的Shell对象来完成导航和子页面,但是在设置Shell时遇到了一些问题。

    <?xml version="1.0" encoding="UTF-8" ?>
    <Shell xmlns="http://xamarin.com/schemas/2014/forms"
           xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
           xmlns:pages="clr-namespace:App.Views.FLMobile"
           FlyoutBehavior="Flyout"
           x:Class="App.Views.FLMobile.AppShell">
    
        <FlyoutItem Title="MyTabApp" Shell.TabBarIsVisible="False" FlyoutDisplayOptions="AsMultipleItems">
            <ShellContent Title="Bears" IsTabStop="true" Icon="" ContentTemplate="{DataTemplate pages:MainPage}" />
        </FlyoutItem>
    
        <ShellContent Title="About" ContentTemplate="{DataTemplate pages:MenuPage}" />
    </Shell>
    

    以及背后的代码:

    namespace App.Views.FLMobile
    {
        [XamlCompilation(XamlCompilationOptions.Compile)]
        public partial class AppShell : Xamarin.Forms.Shell
        {
            public AppShell()
            {
                InitializeComponent();
            }
        }
    }
    

    这是我得到的错误:

    System.ArgumentException异常:'未设置活动Shell项。你补充了吗 你的壳里有没有贝壳?参数名称:ShellItem'

    0 回复  |  直到 5 年前
        1
  •  0
  •   FreakyAli    5 年前

    您使用的是最新版本的Xamarin表单吗?

    如果没有,我建议你升级到它,因为它有很多错误修复。

    所以你实际上需要做的是:

    <FlyoutItem Title="MyTabApp" Shell.TabBarIsVisible="False" FlyoutDisplayOptions="AsMultipleItems">        
    <ShellContent Title="About" ContentTemplate="{DataTemplate pages:MenuPage}" />
    </FlyoutItem>