我试图使用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'
您使用的是最新版本的Xamarin表单吗?
如果没有,我建议你升级到它,因为它有很多错误修复。
所以你实际上需要做的是:
<FlyoutItem Title="MyTabApp" Shell.TabBarIsVisible="False" FlyoutDisplayOptions="AsMultipleItems"> <ShellContent Title="About" ContentTemplate="{DataTemplate pages:MenuPage}" /> </FlyoutItem>