Xamarin表单-状态栏与IOS中的内容重叠(安全区域插图问题)

Xamarin表单-状态栏与IOS中的内容重叠(安全区域插图问题),xamarin,xamarin.forms,xamarin.ios,safearealayoutguide,Xamarin,Xamarin.forms,Xamarin.ios,Safearealayoutguide,在Xamarin形式中,我使用 <ContentPage xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core" ios:Page.UseSafeArea="true" > 使应用程序UI与iPhone X兼容,但它仅在iOS 11中工作。有人对如何在所有iOS设备上实现这一点有什么建议吗?安全区的概念是iPho

在Xamarin形式中,我使用

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


使应用程序UI与iPhone X兼容,但它仅在iOS 11中工作。有人对如何在所有iOS设备上实现这一点有什么建议吗?

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

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

为了在不同的平台上以不同的方式处理事情,XAML中有
OnPlatform
标记(请参阅)。这样,您就可以在
ContentPage

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


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

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

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

为了在不同的平台上以不同的方式处理事情,XAML中有
OnPlatform
标记(请参阅)。这样,您就可以在
ContentPage

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


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

我也尝试过此解决方案,但iphone X的顶部填充20是不够的,如果同时添加两种解决方案(填充20和UseSafeArea),则iphone X的间距将过大。我也尝试过此解决方案,但iphone X的顶部填充20是不够的,然后,如果同时添加两种解决方案(padding 20和useSafea),那么iPhoneX将有太多的间距。也许会有帮助。也许会有帮助。