xamarin XAML 中特定于平台的值

利用 Device.RuntimePlatform 属性,你可以为每个平台选择唯一值。 该属性可以从 OnPlatform 类中获得。 Device.RuntimePlatform 由 Xamarin.Forms 在运行时设置,以便你确定应用正在运行的 OS。 可以使用 Device 类来检查 Device.RuntimePlatform,并确定要执行的代码路径。
通过将页面顶部填充 20 个单位,即可使用此方法来解决显示问题。 iOS 状态栏的高度约为 20 个单位。 你的代码将类似于如下代码:

if (Device.RuntimePlatform == Device.iOS)
{
    Padding = new Thickness(0, 20, 0, 0);
}

OnPlatform 类是 Xamarin.Forms 基础结构的一部分。 OnPlatform 使你可在 XAML 元素上设置属性,并可在运行时用于 iOS、Android 和其他受支持的 Xamarin.Forms 平台。 你指定其他值,然后,OnPlatform 会在运行时为你执行 switch 语句。 这只是一个类型转换器,可为运行时平台返回适当的值。

OnPlatform 为泛型类型。 必须指定 T 的类型。 在代码中指定类型很简单,但你的目标是从 XAML 指定类型,而不是从代码指定。 XAML 规范具有一种可使用 <x:TypeArguments /> 指令指定泛型类型参数的方法。 以下是设置布局背景色的示例:

<StackLayout.BackgroundColor>
    <OnPlatform x:TypeArguments="Color">
        <On Platform="iOS" Value="Silver" />
        <On Platform="Android" Value="Green" />
    </OnPlatform>
</StackLayout.BackgroundColor>

为 iOS 将顶部填充设置为 20 个单位。 你会再次使用 OnPlatform 对象。 在这种情况下,将填充的类型设置为 Thickness:

<ContentPage.Padding>
    <OnPlatform x:TypeArguments="Thickness">
        <On Platform="iOS" Value="0,20,0,0" />
        <On Platform="Android" Value="0,0,0,0" />
    </OnPlatform>
</ContentPage.Padding>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值