.Net Maui Shell 导航在 iOS 上无法正常工作

问题描述 投票:0回答:1

我在 .Net Maui Shell 页面中有以下项目:

<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
    <ShellContent Title="Places" Icon="cocktail.png" Route="Places" ContentTemplate="{DataTemplate views:Places}"/>
    <ShellContent FlyoutItemIsVisible="False" Route="PlaceRating" ContentTemplate="{DataTemplate views:PlaceRating}"/>
    <ShellContent FlyoutItemIsVisible="False" Route="ManagePlace" ContentTemplate="{DataTemplate views:ManagePlace}"/>
    <ShellContent FlyoutItemIsVisible="False" Route="PlaceDetails" ContentTemplate="{DataTemplate views:PlaceDetails}"/>
    <ShellContent FlyoutItemIsVisible="False" Route="MapPlace" ContentTemplate="{DataTemplate views:MapPlace}"/>
    <ShellContent Title="Cities" Icon="city.png" Route="Cities" ContentTemplate="{DataTemplate views:NearbyCities}" />
    <ShellContent Title="Search" Icon="worldsearch.png" Route="Search" ContentTemplate="{DataTemplate views:Search}" />
</FlyoutItem>
<ShellContent Title="Settings" Icon="settings.png" Route="Settings" ContentTemplate="{DataTemplate views:Settings}"/>
<ShellContent Title="About" Icon="info.png" Route="About" ContentTemplate="{DataTemplate views:About}" />

在 Android 上 - 一切都按预期进行。换句话说,当我单击“城市”菜单选项时,我将进入“城市”页面,如下所示:

但是,在 iOS 中,当我导航到“城市”页面时 - 我看到的屏幕如下所示:

知道为什么会发生这种情况吗?

ios navigation maui maui-shell
1个回答
0
投票

所以我解决了这个问题。由于某种原因 - 在 iOS 上 - Maui 不喜欢 Shell 声明中间隐藏的弹出项目,如下所示(即使它可以在 Android 上找到)

<Shell x:Class="GBarScene.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:GBarScene.Views"
Shell.FlyoutBehavior="Flyout"
FlyoutWidth="200"
FlyoutBackgroundColor="#F2F5FF">
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
    <ShellContent Title="Places" Icon="cocktail.png" Route="Places" ContentTemplate="{DataTemplate views:Places}"/>
    <ShellContent FlyoutItemIsVisible="False" Route="PlaceRating" ContentTemplate="{DataTemplate views:PlaceRating}"/>
    <ShellContent FlyoutItemIsVisible="False" Route="ManagePlace" ContentTemplate="{DataTemplate views:ManagePlace}"/>
    <ShellContent FlyoutItemIsVisible="False" Route="PlaceDetails" ContentTemplate="{DataTemplate views:PlaceDetails}"/>
    <ShellContent FlyoutItemIsVisible="False" Route="MapPlace" ContentTemplate="{DataTemplate views:MapPlace}"/>
    <ShellContent Title="Cities" Icon="city.png" Route="Cities" ContentTemplate="{DataTemplate views:NearbyCities}" />
    <ShellContent Title="Search" Icon="worldsearch.png" Route="Search" ContentTemplate="{DataTemplate views:Search}" />
</FlyoutItem>
<ShellContent Title="Settings" Icon="settings.png" Route="Settings" ContentTemplate="{DataTemplate views:Settings}"/>
<ShellContent Title="About" Icon="info.png" Route="About" ContentTemplate="{DataTemplate views:About}" />

为了使导航正常工作,我将隐藏的项目移动到声明的末尾,如下所示:

<Shell x:Class="GBarScene.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:GBarScene.Views"
Shell.FlyoutBehavior="Flyout"
FlyoutWidth="200"
FlyoutBackgroundColor="#F2F5FF">
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
    <ShellContent Title="Places" Icon="cocktail.png" Route="Places" ContentTemplate="{DataTemplate views:Places}"/>
    <ShellContent Title="Cities" Icon="city.png" Route="Cities" ContentTemplate="{DataTemplate views:NearbyCities}" />
    <ShellContent Title="Search" Icon="worldsearch.png" Route="Search" ContentTemplate="{DataTemplate views:Search}" />
</FlyoutItem>
<ShellContent Title="Settings" Icon="settings.png" Route="Settings" ContentTemplate="{DataTemplate views:Settings}"/>
<ShellContent Title="About" Icon="info.png" Route="About" ContentTemplate="{DataTemplate views:About}" />
<ShellContent FlyoutItemIsVisible="False" Route="PlaceRating" ContentTemplate="{DataTemplate views:PlaceRating}"/>
<ShellContent FlyoutItemIsVisible="False" Route="ManagePlace" ContentTemplate="{DataTemplate views:ManagePlace}"/>
<ShellContent FlyoutItemIsVisible="False" Route="PlaceDetails" ContentTemplate="{DataTemplate views:PlaceDetails}"/>
<ShellContent FlyoutItemIsVisible="False" Route="MapPlace" ContentTemplate="{DataTemplate views:MapPlace}"/>

然后导航在 iOS 中按预期工作,我被直接带到“城市”页面,并且没有出现问题中显示的菜单列表。

© www.soinside.com 2019 - 2024. All rights reserved.