Xamarin Forms - 处理 Crossplateform 屏幕可变性

Xamarin Forms - Handle Crossplateform Screen Variability

我又来这里问一个关于 Xamarin Forms 的问题。

我想先谈谈差异屏幕。 Android 是完美的,但 iOS 和 WinPhone 需要一些适应。这是什么意思?


Android

-主布局填满了整个屏幕。

-顶部导航栏被转义,它不是屏幕的一部分。


iOS

-主要布局是填满屏幕和顶部导航栏,因此,布局必须进行相应调整。

为了处理它,我为 TOP

添加了一个简单的边距 20px

赢Phone 8.1

-主布局满屏

-顶部导航栏被转义,它不是屏幕的一部分。

但是,在某些 Nokia/Microsoft Phone 上,Phone 上没有硬件按钮。这些按钮是屏幕的一部分(numerics buttons),它们可以隐藏,但如果不隐藏,它就会参与到屏幕上... 真的很无聊.. 关于它的一些问题


-如何处理这些按钮的出现?是否存在 Event 来告诉我它们何时可见?

-这个底部硬件导航栏的大小是多少?

-我可以做一些 disables/hide 这个 Navbar 或者禁用用户 disable/hide 它的可能性吗?


感谢阅读!

考虑使用 Device.OnPlatform 在特定平台上进行更改,不需要特定于平台的代码。对于软件导航栏,我相信您可以在 App.xaml.cs:

中的 OnLaunched 方法中添加类似的内容
Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().SuppressSystemOverlays = true;

有关详细信息,请参阅此 SO 问题: