0

我正在尝试使用 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 中添加了任何 Shell 项目?参数名称:ShellItem'

4

1 回答 1

0

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

如果不是,我建议您升级到它,因为它有许多错误修复。

其次,问题是您直接使用没有弹出项的外壳内容,因此您实际需要做的是:

<FlyoutItem Title="MyTabApp" Shell.TabBarIsVisible="False" FlyoutDisplayOptions="AsMultipleItems">        
<ShellContent Title="About" ContentTemplate="{DataTemplate pages:MenuPage}" />
</FlyoutItem>
于 2019-09-04T07:50:34.477 回答