gpt4 book ai didi

forms - Flex formitem标签对齐奇怪

转载 作者:行者123 更新时间:2023-12-01 11:49:05 24 4
gpt4 key购买 nike

我为这一个做了一个像样的头发致敬
为什么 Label 1 和 Label 2 的垂直对齐方式不同?

        <s:Form width="100%">
<s:FormHeading width="100%" label="Heading" />
<s:FormItem width="100%" label="Label 1">
<s:HGroup verticalAlign="bottom">
<s:Label text="Size" fontSize="40"/>
<s:Label text="Mb"/>
</s:HGroup>
</s:FormItem>
<s:FormItem width="100%" label="Label 2">
<s:HGroup verticalAlign="middle">
<s:VGroup horizontalAlign="center">
<s:Label text="Set1" />
<s:Label text="{this.set1}" fontSize="40"/>
<s:Label text="Days" />
</s:VGroup>
<s:Label text="+" fontSize="40" />
<s:VGroup horizontalAlign="center">
<s:Label text="Set2" />
<s:Label text="{this.set2}" fontSize="40" />
<s:Label text="Days" />
</s:VGroup>
</s:HGroup>
</s:FormItem>
</s:Form>

最佳答案

错误还是功能? FormItem 的标签与 FormItem 内容的基线对齐。一张图片胜过一千个字,所以我会告诉你会发生什么:

FormItem baseline

所以它变成了一个特性(感谢你提出这个问题:我自己直到今天才知道这个)。

为了“修复”此功能,您必须创建一个自定义皮肤:通过复制原始 spark.skins.spark.FormItemSkin 创建一个皮肤类。
找到名为 labelDisplay 的元素;它应该是这样的:

<s:Label id="labelDisplay"
fontWeight="bold"
left="labelCol:0" right="labelCol:5"
bottom="row1:10" baseline="row1:0"/>

看到那个 baseline 属性了吗?这就是导致不良行为的原因。 你可以简单地删除它;然后标签将始终与底部对齐。如果你想将它对齐到垂直中心,你可以这样改变它:

<s:Label id="labelDisplay" fontWeight="bold" verticalAlign="middle"
left="labelCol:0" right="labelCol:5" top="row1:10" bottom="row1:10"/>

现在您需要做的就是将您的自定义皮肤应用到您的 FormItem:

<s:FormItem skinClass="my.custom.FormItemSkin">

或者在更频繁使用的情况下:

<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";

s|FormItem.centeredLabel {
skinClass: ClassReference("my.custom.FormItemSkin");
}
</fx:Style>

<s:FormItem styleName="centeredLabel">

关于forms - Flex formitem标签对齐奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13361699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com