平台上不同的网格尺寸(高度)

ama*_*ara 3 xamarin.ios xamarin.android xamarin xamarin.forms

我有一个网格,其中 Android RowDefinition(heigh)t 为 100,在 iO 上为 120。我如何在 Xaml 内针对每个平台标识执行此操作。

 <ContentPage.Resources>
        <ResourceDictionary>
            <OnPlatform x:Key="GridSize"   x:TypeArguments="GridLength"  iOS="120"  Android="100"  />
        </ResourceDictionary>
    </ContentPage.Resources>


    <Grid RowSpacing="0" x:Name="grid" AbsoluteLayout.LayoutFlags="All" 
            <Grid.RowDefinitions>
                <RowDefinition Height="{StaticResource GridSize}" />
            <RowDefinition Height="60" />
                <RowDefinition Height="280" />
            </Grid.RowDefinitions>
       </Grid>
Run Code Online (Sandbox Code Playgroud)

这样就行不通了。

Ger*_*uis 5

您是否尝试过直接执行而不是通过资源执行?

<Grid RowSpacing="0" x:Name="grid" AbsoluteLayout.LayoutFlags="All" 
        <Grid.RowDefinitions>
            <RowDefinition>
                <RowDefinition.Height>
                    <OnPlatform x:TypeArguments="GridLength">
                       <On Platform="Android">100</On>
                       <On Platform="iOS"120/On>
                    </OnPlatform>
                </RowDefinition.Height>
            </RowDefinition>
            <RowDefinition Height="60" />
            <RowDefinition Height="280" />
        </Grid.RowDefinitions>
   </Grid>
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用较新的标记扩展<RowDefinition Height="{OnPlatform 100, iOS=120, Android=100}" />