Xamarin.Forms:如何在Android本身的标签上垂直“居中”

时间:2018-07-20 10:35:37

标签: android ios xamarin.forms label vertical-alignment

我尝试使用 FontIcon 通过自定义标签显示项目。

图标的宽度大于其高度,因此我想调整高度垂直对齐

但是,我在Android上遇到一个奇怪的行为,而在iOS上却可以正常工作。

例如,使用默认标签和基本文本,结果是相同的:

<Grid HeightRequest="80">
    <Label Text="A" TextColor="Black" 
           FontSize="150" 
           BackgroundColor="Yellow"
           VerticalOptions="Center" HorizontalOptions="Center" 
           VerticalTextAlignment="Center" />
    </Label>
</Grid>

正如我所解释的,它在iOS上运行良好,

iOS

但不是在Android上

Android

您有任何解释或建议吗?

我已经通过在Android上添加负边距来测试另一种方法:

<Grid BackgroundColor="Olive"
      HeightRequest="120">
    <Label Text="A" TextColor="Black" 
           FontSize="180" 
           BackgroundColor="Yellow"
           VerticalOptions="FillAndExpand" HorizontalOptions="Center" 
           VerticalTextAlignment="Start">
        <Label.Margin>
            <OnPlatform x:TypeArguments="Thickness">
                <On Platform="Android" Value="0, -70, 0, 0" />
            </OnPlatform>
        </Label.Margin>
    </Label>
</Grid>

在iOS上,结果看起来不错:

iOS2

在Android上也似乎不错:

Android2

但这仅适用于某些设备,当我在真实设备或不同的仿真器上对此进行测试时,渲染并不总是相同的。

我并不是说这是更好的方法,但是我不确定是否可以实现这一目标。

0 个答案:

没有答案