有人可以向我解释 xamarin 形式的约束、因子和常数吗?



我已经阅读了有关它的文档,但就是无法理解它。我有这个代码

<RelativeLayout Padding="0" Margin="0" HorizontalOptions="FillAndExpand" HeightRequest="300" VerticalOptions="Start" BackgroundColor="Green">
<Image
Source="infoBox.png" x:Name="infobox"  WidthRequest="400"
RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToView, Property=Height,Factor=1,Constant=0}" 
RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToView, Property=X, Factor=0.10, Constant=25}"
/>
<Label Text=":)"
RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToView, Property=Y, Constant=5}"
RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToView, Property=X, Factor=0.10, Constant=25}"
TextColor="#000000"/>
</RelativeLayout>

我正在尝试在主从导航中占据详细信息页面全宽但非全高的图像上显示一些文本。我尝试更改常量/因子,但我不知道它的作用,每次结果都没有显示我的期望。有人可以解释常数和因子的作用吗?例如,如果我将 x 约束的因子设置为 1,它会做什么?使宽度成为原始宽度还是使其填充整个宽度?

感到沮丧,不明白它到底做了什么。请帮忙:(

类型是您要定位或调整大小的内容。它可以是 RelativeToParent 或 RelativeToView。如果视图使用元素名称说出哪个视图。

属性是您尝试在控件上设置的属性。您可以设置宽度或高度或 X 坐标。

因子是要使用的父视图或视图的百分比。如果父级为 500 像素,因子为 0.5,则设置的值为 250。

常量允许您更改使用因子计算的值。如果将常量设置为 -100,那么我们之前计算的值现在将为 150。

说了这么多,使用网格定位图像和标签会容易得多。

将图像和标签放在同一网格行中,然后使用水平和垂直选项将标签定位在行内。使用边距稍微上下移动标签。

相对布局应该尽可能避免,因为根据Xamarin的父亲Jason Smith的说法,它具有很高的计算成本。

最新更新