0

在 Xamarin Forms 中,我正在使用

<ContentPage 
    xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
    ios:Page.UseSafeArea="true" > 

使应用程序 UI 与 iPhone X 兼容,但它仅在 iOS 11 中工作。有人对如何在所有 iOS 设备上进行此工作有建议吗?

4

1 回答 1

6

安全区的概念是 iPhone X 独有的,因此是 iOS 11+ 独有的。无论如何,默认情况下,应用程序使用整个手机屏幕(而不是 Android),因此,如果显示状态栏(如果需要,您可以将其隐藏,但这是另一回事),您的应用程序将重叠它。

Xamarin.FormsNavigationPage将自动适应可用区域(其他可能也是),但如果您使用的是裸机ContentPage,则必须自己处理。

为了在不同的平台上以不同的方式处理事情OnPlatform,XAML 中有标签(请参见此处)。有了它,您可以将平台相关的填充添加到您的ContentPage

<ContentPage.Padding>
    <OnPlatform x:TypeArguments="Thickness">
        <On Platform="iOS" Value="0,20,0,0" />
    </OnPlatform>
</ContentPage.Padding>

这将防止您的页面与状态栏重叠。

于 2018-02-08T06:22:41.557 回答