我最近与我的团队就Xamarin.Form布局进行了讨论,他们认为Xamarin.Forms.AbsoluteLayout很脆弱且难以使用(我个人认为它们非常方便,特别是对于比例布局,以及我记得的一切阅读,它们通常不是性能问题)。他们引用this article,表示要避免使用AbsoluteLayouts - 但这是特定于Android的文章,而且它指的是Android.Widget.AbsoluteLayout。
所以这让我思考...... Xamarin.Forms.Layout以某种方式转化为Android.Widget.AbsoluteLayout(我认为他们完全不同,因为Xamarin.Forms允许按比例调整大小/位置)? 如何 Xamarin.Forms如何将各种布局转换为特定于平台的布局?
答案 0 :(得分:3)
布局在Xamarin Forms中的工作方式与在本机平台上的等效工作方式不同。 XF绝对布局不只是围绕Android AbsoluteLayout的包装。
XF中的布局类似于它们在WPF和其他Microsoft平台中的工作方式。布局首先要求所有孩子给它一个首选尺寸(测量)。然后它使用它的逻辑来安排它的孩子。内置控件包装现有的本机控件(例如,iOS上的UITextBox和Android上的EditText的条目映射)。
话虽如此。我同意绝对布局通常不是支持多种屏幕尺寸的好方法。还有其他更灵活的布局可以帮助您创建一个通用的方法来实现"通用" UI。