You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI中CommunityToolkit.Maui Popup在Android上Label定位异常

.NET MAUI Android平台Popup内Label显示异常问题
  • 维护的.NET MAUI应用原本运行正常,更新编译版本(仅升级了包含CommunityToolkit的部分NuGet包)后,Android平台出现异常:Popup中的所有Label显示位置远低于预期,内容被截断;尝试通过padding上移Label,仅能改变位置,截断问题依然存在。iOS平台显示完全正常。
  • 对比其他使用相同版本NuGet包的MAUI弹窗项目,未发现该问题;新建项目并复制相同代码后,问题复现。
  • 进一步排查发现,Label的垂直居中是相对于整个Popup高度,而非自身设置的HeightRequest范围。

原Popup代码

<?xml version="1.0" encoding="utf-8" ?>
<mct:Popup xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:mct ="clr-namespace:CommunityToolkit.Maui.Views;assembly=CommunityToolkit.Maui"
             x:Class="Project.Popups.PopUp_Continue"
             >
    <VerticalStackLayout HorizontalOptions="Center" VerticalOptions="Fill" x:Name="vStack" HeightRequest="205">

        <Label x:Name="Lbl_Message"
               VerticalOptions="Center" 
               HorizontalOptions="Center"
               FontAttributes="Bold"
               FontSize="23"
               HorizontalTextAlignment="Center"
               FontAutoScalingEnabled="False"
               HeightRequest="120"
               VerticalTextAlignment="Center"
               Margin="10,10,10,0"
               />

        <HorizontalStackLayout Margin="0,10,0,10" x:Name="hStack" HorizontalOptions="Center" HeightRequest="55">      
            <Button x:Name="Btn_No" Clicked="Btn_No_Clicked" BackgroundColor="IndianRed" Text="Cancelar" HeightRequest="55" FontSize="20" FontFamily="" FontAttributes="Bold" HorizontalOptions="Center" Margin="0,0,10,0" FontAutoScalingEnabled="False"/>
            <Button x:Name="Btn_Yes" Clicked="Btn_Yes_Clicked" BackgroundColor="Green" Text="Aceptar" HeightRequest="55" FontSize="20" FontFamily="" FontAttributes="Bold" HorizontalOptions="Center" Margin="10,0,0,0" FontAutoScalingEnabled="False"/>
        </HorizontalStackLayout>

    </VerticalStackLayout>
</mct:Popup>

显示情况

原效果中Label位置过低,部分内容被Popup底部截断;正常状态下Label应显示在Popup顶部与按钮区域之间的居中位置。

尝试的调整及效果

  • 手动调整Label的Margin和Padding后,Label位置上移,但截断问题未完全解决
  • 按照@H.A.H.的建议修改代码后,Label位置更接近预期,截断情况有所改善

修改后的代码

<?xml version="1.0" encoding="utf-8" ?>
<mct:Popup xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:mct ="clr-namespace:CommunityToolkit.Maui.Views;assembly=CommunityToolkit.Maui"
             x:Class="Project.Popups.PopUp_Continue"
             >
    <VerticalStackLayout HorizontalOptions="Center" VerticalOptions="Fill" x:Name="vStack" HeightRequest="205">
        <Grid HeightRequest="120">
            <Label x:Name="Lbl_Message"
                   Margin="0,50,0,50"
                   VerticalOptions="Center" 
                   HorizontalOptions="Center"
                   FontAttributes="Bold"
                   FontSize="23"
                   FontAutoScalingEnabled="False"
                   />
        </Grid>
        <HorizontalStackLayout Margin="0,10,0,10" x:Name="hStack" HorizontalOptions="Center" HeightRequest="55">      
            <Button x:Name="Btn_No" Clicked="Btn_No_Clicked" BackgroundColor="IndianRed" Text="Cancelar" HeightRequest="55" FontSize="20" FontFamily="" FontAttributes="Bold" HorizontalOptions="Center" Margin="0,0,10,0" FontAutoScalingEnabled="False"/>
            <Button x:Name="Btn_Yes" Clicked="Btn_Yes_Clicked" BackgroundColor="Green" Text="Aceptar" HeightRequest="55" FontSize="20" FontFamily="" FontAttributes="Bold" HorizontalOptions="Center" Margin="10,0,0,0" FontAutoScalingEnabled="False"/>
        </HorizontalStackLayout>

    </VerticalStackLayout>
</mct:Popup>

内容的提问来源于stack exchange,提问作者Ian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 08:53:20