0

在我的 .mxml 文件中,我使用数据库中的文本数据填充两个并排的标签。

像这样:

    <s:Label x="10" y="37.5" width="100%" text="{data.city}"/>
    <s:Label x="86" y="36.75" width="100%" text="{data.state}"/>

有时,我会得到一段特别长的文本数据,这会导致 2 个标签相互重叠,变得完全不可读。

我认为这是因为我设置了 x 和 y。有没有办法让这更加动态?

谢谢!

4

4 回答 4

3

我建议探索不同的 Flex 布局容器。

H集团

<s:HGroup>
    <s:Label text="{data.city}"/>
    <s:Label text="{data.state}"/>
</s:HGroup>

这提供了听起来像您从示例中寻找的那种布局。但是,您可能还想查看 Flex 提供的其他一些容器。

形式

Flex 表单以通常对创建表单有用的方式对齐数据。您可能希望为您的 UI 考虑这一点,尤其是当您允许用户提供持久回您的数据库的输入时。

<s:Form>
    <s:FormItem label="City:">
        <s:Label text="{data.city}"/>
    </s:FormItem>
    <s:FormItem label="State:">
        <s:Label text="{data.state}"/>
    </s:FormItem>
</s:Form>
于 2012-04-16T19:20:08.067 回答
1

尝试将第二个标签的 X 设置为第一个标签的宽度 + 空格 + x 第一个标签。

所以:第一个标签宽度 + 空格 + 第一个标签的 x

于 2012-04-16T19:10:25.927 回答
1

你可以做几件事:

如果您有一个函数被调用来设置每个标签的值,请根据该函数中的内容重新定位标签。

如果标签的值绑定到数据,因此您不必在数据刷新时收到通知,那么是时候重写updateDisplayList()UIComponent 的方法,并让它重新定位您的标签。

通过理解和使用 UIComponent 的生命周期,可以获得很多效率(这将提高您的性能)。如果你只用谷歌搜索“Flex 组件生命周期”,就会有很多关于这个主题的好信息

祝你好运!

于 2012-04-16T19:17:57.880 回答
1

如果您必须以有限的宽度显示标签,那么您可以使用标签的 maxWidth 属性,这将在标签中显示您的文本,如果文本很长,那么它将显示一些文本并以 ... 格式保留。

<s:Label text="{data.city}" maxWidth="150"/> 
于 2012-04-17T05:48:23.760 回答