.NET MAUI的标签栏与Android导航按钮重叠

移动开发 2026-07-10

我目前正在调试一个.NET MAUI应用,并遇到了一个问题。

我们最近从.NET 9.0升级到.NET 10.0,整体过渡大部分顺利,除了应用底部的Shell TabBar。

出于某种原因,Android的导航按钮现在与我们用于导航的标签栏重叠。

标签栏的代码在不同版本之间没有变化,那么我该如何让Android按钮的安全区恢复呢?

.NET 9.0:

enter image description here

现在在.NET 10.0:

enter image description here

<TabBar Route="MainPage">
    <ShellContent
        Title="{x:Static strings:AppResources.Home}"
        ContentTemplate="{DataTemplate landingviews:LandingPage}"
        Icon="landing_page_icon.png"
        Route="Landing" />

    <ShellContent
        Title="{x:Static strings:AppResources.Investments}"
        ContentTemplate="{DataTemplate investmentviews:InvestmentDetailsPage}"
        Icon="investments_page_icon.png"
        Route="Catalog" />

    <ShellContent
        Title="{x:Static strings:AppResources.Documents}"
        ContentTemplate="{DataTemplate documentviews:DocumentPage}"
        Icon="documents_page_icon.png"
        Route="Document" />

    <ShellContent
        Title="{x:Static strings:AppResources.Advisor}"
        ContentTemplate="{DataTemplate advisorviews:AdvisorPage}"
        Icon="advisor_page_icon.png"
        Route="Advisor" />

    <ShellContent
        Title="{x:Static strings:AppResources.More}"
        ContentTemplate="{DataTemplate moreviews:MorePage}"
        Icon="more_page_icon.png"
        Route="More" />
</TabBar>

解决方案

我找到了修复的方法,但我记不清楚当时错误时代码长什么样。

挺简单的,AppShell的主题出于某种原因把Android导航栏的UI搞乱了,使用这个进行调整似乎解决了问题:

    <Shell.Behaviors>
        <toolkit:StatusBarBehavior StatusBarColor="{StaticResource White3}" StatusBarStyle="LightContent" />
    </Shell.Behaviors>

似乎已经解决了这个问题!

感谢大家的帮助!

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章