在 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 设备上进行此工作有建议吗?
在 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 设备上进行此工作有建议吗?
安全区的概念是 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>
这将防止您的页面与状态栏重叠。