我已经阅读了关于它的文档,但就是无法理解。我有这个代码
<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。如果 View 使用 ElementName 来说明哪个 View 。
属性是您要在控件上设置的属性。您可以设置宽度或高度或 X 坐标。
因子是您要使用的父级或 View 的百分比。如果父级为 500 像素且因子为 0.5,则您设置的值为 250。
Constant 允许您更改使用 Factor 计算的值。如果您将 Constant 设置为 -100,那么我们之前计算的值现在将为 150。
说了这么多,使用网格定位图像和标签会容易得多。
将图像和标签放在同一网格行中,然后使用水平和垂直选项将标签放置在行内。使用 Margin 稍微上下移动标签。
Relative layout should be avoided it at all possible as it has a high computational cost according to the father of Xamarin forms Jason Smith .
关于xaml - 有人可以向我解释 xamarin 形式中的约束、因素和常数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48073919/