xamarin 如何在iOS上使用MAUI摆脱Shell TabBar Title空间?

8xiog9wr  于 2023-06-27  发布在  iOS
关注(0)|答案(1)|浏览(146)

请考虑以下图像:

我使用MAUI和默认的Shell做了这个,像这样:

<Shell
    x:Class="MyApp.AppShell"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:pages="using:MyApp.Pages"
    FlyoutBehavior="Disabled"
    BackgroundColor="Red">
    <TabBar>
        <Tab>
            <ShellContent Title="Title" ContentTemplate="{DataTemplate pages:MainPage}" />
        </Tab>
    </TabBar>
</Shell>

因为TabBar是隐式的,如果你省略它,我只是离开它。
然后通过在应用程序上分配MainPage来应用此Shell,如下所示:

MainPage = new AppShell();

我试过各种方法来隐藏标题:

  • 不分配一个标题到标签,但这将只留下一个空白空间。
  • Shell.TabBarIsVisible="false"和类似的选项,甚至在组件初始化之前和之后通过代码执行,并将XAML指令移动到ShellContext XAML。
  • Shell.NavBarIsVisible="false"似乎做了一些事情,但它也会隐藏iOS状态栏,仍然保留空间。
  • 我已经尝试使用XAML调试器检查元素,因此可以设置IsVisible属性或其他属性。
  • 将我的页面直接分配给MainPage,它仍然会保留空间。
  • 我甚至浏览了MAUI的源代码来寻找一些有趣的东西,但没有运气。

我现在不知所措,根本找不到任何东西让它工作。有人能告诉我删除标题和保留空格的正确方向吗?所有这一切似乎在Android和UWP上都能正常工作,只是iOS不行。

64jmpszr

64jmpszr1#

出于纯粹的绝望,我测试了一个运行iOS 16.5的真实的iPhone,我不得不得出结论,这是一个iOS模拟器相关的问题,而不是物理硬件问题。不过,还是挺烦人的。
顺便说一下,正确的方法是Shell.NavBarIsVisible="false"

相关问题