Xamarin表单 - 状态栏与IOS中的内容重叠(safeareainsets issue)

时间:2018-02-08 03:48:52

标签: xamarin xamarin.forms xamarin.ios safearealayoutguide

在Xamarin Forms中,我正在使用

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

使应用程序用户界面与iPhone X兼容,但它仅适用于iOS 11.任何人都有关于如何在所有iOS设备上运行此工作的建议吗?

1 个答案:

答案 0 :(得分:2)

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

Xamarin.Forms NavigationPage会自动适应可用区域(其他人也可能),但如果你使用裸ContentPage,那么你必须要照顾自己。

要在不同平台上处理不同的事情,XAML中有OnPlatform标记(请参阅here)。有了它,您可以为ContentPage

添加依赖于平台的填充
<ContentPage.Padding>
    <OnPlatform x:TypeArguments="Thickness">
        <On Platform="iOS" Value="0,20,0,0" />
    </OnPlatform>
</ContentPage.Padding>

会阻止您的页面与状态栏重叠。

相关问题