Xamarin.Forms为不同的平台android,ios设置不同的Colum定义

问题描述

我有这个网格:

        <Grid >
            <Grid.ColumnDeFinitions>
                <ColumnDeFinition Width="1.07*" />
                <ColumnDeFinition Width="1.2*" />
                <ColumnDeFinition Width="0.05*" />
            </Grid.ColumnDeFinitions>
</Grid>

此网格是android和ios标题视图的一部分。我需要在中间的列中居中放置图标,但是由于ios和android处理标题视图的方式不同,因此,居中的图标在ios上的居中位置稍微偏左,而在android的中间位置。我需要为每个平台设置不同的列宽。

这可行吗?

谢谢!

解决方法

您可以使用以下代码针对不同平台(android,ios)针对不同的Colum定义实现。

    <Grid >
            <Grid.ColumnDefinitions>
                <ColumnDefinition  >
                    <ColumnDefinition.Width>
                        <OnPlatform x:TypeArguments="GridLength">
                            <On Platform="iOS" Value="1.2*"></On>
                            <On Platform="Android" Value="2.07*"></On>
                        </OnPlatform>
                    </ColumnDefinition.Width>
                    
                </ColumnDefinition>
                <ColumnDefinition Width="1.2*" />
                <ColumnDefinition Width="0.05*" />
            </Grid.ColumnDefinitions>

            <Label Grid.Row="0" Grid.Column="0" Text="By default,a Grid contains one row and one column." />
        </Grid>