在我的.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设置。有没有办法让这更有活力?
谢谢!
答案 0 :(得分:3)
我建议您探索不同的Flex布局容器。
<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>
答案 1 :(得分:1)
尝试使用第一个标签+空格+ x第一个标签的宽度设置第二个标签的X.
答案 2 :(得分:1)
你可以做几件事:
如果您有一个被调用的函数来设置每个标签的值,请根据该函数中的内容重新定位标签。
如果标签的值绑定到数据,以便在刷新数据时不一定得到通知,那么是时候覆盖UIComponent的updateDisplayList()
方法,并让它重新定位你的标签。
通过理解和使用UIComponent的生命周期,可以获得很多效率(这将提高您的性能)。如果您只是谷歌“Flex组件生命周期”
,那么有很多关于这个主题的好信息 祝你好运!答案 3 :(得分:1)
如果您必须以有限的宽度显示标签,那么您可以使用标签的maxWidth属性,这将在标签中显示您的文本,如果文本很长,那么它将显示一些文本并保留为...格式
<s:Label text="{data.city}" maxWidth="150"/>