Xamarin Android填充和布局差异

时间:2018-12-06 15:41:55

标签: android visual-studio xaml xamarin

我正在使用Xamarin和Visual Studio编写一个Android应用程序。 我注意到,在填充和边距(通过xaml)方面,有时在设计器和不同的Android版本中布局看起来非常不同。 例如,在设计器中使用ImageButton中的paddingVertical和paddingHorizo​​ntal可以在设计器中使用,但是在仿真器和测试设备中却无法使用,因此必须使用paddingLeft,paddingTop等。 关于边距-我注意到在Lollipop设备上有很多边距,但没有指定任何边距的简单布局可以实现,但在Nougat设备上却没有任何边距。 是否有任何方法可以预测布局的外观而与Android版本无关,此外,是否有任何文档说明哪些属性适用于Android版本? paddingVertical的文档让我不清楚为什么它不能在设备上运行。

任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:0)

欢迎来到Android零碎的世界!

默认主题(用于设置颜色和其他布局属性)根据API级别而有所不同,因此默认情况下,应用程序将与运行它的Android版本保持一致,看起来很明智。

这甚至与三星,HTC,LG等都在“香草” android操作系统(它是开放源代码,因此任何人都可以随意修改Android)之上添加内容有关。是的,某些布局属性存在于某些版本中,而在其他版本中则不存在,因此支持库旨在允许开发人员在较早版本的OS上使用较新的功能/类。当添加了特定属性时,Android API参考应向您显示。例如:https://developer.android.com/reference/android/widget/Toolbar.html#attr_android:gravity

您可以在上述参考资料中看到,在Android API级别21(Lollipop)中添加了工具栏类

属性全部在类R.attr中:https://developer.android.com/reference/android/R.attr

例如,直到API级别26才添加

paddingVertical: https://developer.android.com/reference/android/R.attr.html#paddingVertical

因此,如果设备的版本为

然后是主题的问题。在设计器中工作时,是否以与应用程序使用的主题相同的方式查看布局?您可以选择在设计器中查看布局时要显示的Android版本和主题:

Choose Android version in designer