Apache flex 灵活布局-调整大小“;内联“;文本组件

Apache flex 灵活布局-调整大小“;内联“;文本组件,apache-flex,layout,Apache Flex,Layout,我正在尝试创建一个由3个水平标签/文本组件组成的简单布局。我希望组件根据其文本内容调整大小,这将在运行时更改 组件应如下所示: <mx:Label text="{firstNum}" /> <mx:Label text="-" /> <mx:Label text="{secondNum}" /> 输出看起来像“0-1”或“1-99”或“1000-9999” 我的问题是,标签的默认宽度比其内容宽(即使填充设置为0),如果我设置了显式宽度,则在更新绑定变量时

我正在尝试创建一个由3个水平标签/文本组件组成的简单布局。我希望组件根据其文本内容调整大小,这将在运行时更改

组件应如下所示:

<mx:Label text="{firstNum}" />
<mx:Label text="-" />
<mx:Label text="{secondNum}" />

输出看起来像“0-1”或“1-99”或“1000-9999”

我的问题是,标签的默认宽度比其内容宽(即使填充设置为0),如果我设置了显式宽度,则在更新绑定变量时,较大的数字将被截断

所以,我想创建一个标签,它的宽度与其内容完全相同,即使内容是单个字符

在屏幕上,来自3个标签的文本看起来应该与在单个标签中输入的所有文本相同

(我需要将文本保存在单独的组件中,以便可以单独在firstNum/secondNum上播放效果。)

看起来应该很容易吧


谢谢!斯图

我不确定我是否理解了你的问题,但试试这个:

Flex 3:

<mx:HBox horizontalGap="0">
   <mx:Label text="{firstNum}"/>
   <mx:Label text=" - "/>
   <mx:Label text="{secondNum}"/>
</mx:HBox>
<s:Group>
   <s:layout>
      <HorizontalLayout gap="0"/>
   </s:Layout>
   <mx:Label text="{firstNum}"/>
   <mx:Label text=" - "/>
   <mx:Label text="{secondNum}"/>
</s:Group>

Flex 4:

<mx:HBox horizontalGap="0">
   <mx:Label text="{firstNum}"/>
   <mx:Label text=" - "/>
   <mx:Label text="{secondNum}"/>
</mx:HBox>
<s:Group>
   <s:layout>
      <HorizontalLayout gap="0"/>
   </s:Layout>
   <mx:Label text="{firstNum}"/>
   <mx:Label text=" - "/>
   <mx:Label text="{secondNum}"/>
</s:Group>

当然,您可以将水平间隙设置为您喜欢的任何值。 这将使标签控件在父容器允许的范围内从左向右流动

更新:

如果您的意思是标签之间的间距太大,请尝试将padding(您有)、margin和horizontalGap/gap设置为0


如果这仍然不起作用,请输入一些代码或屏幕截图好吗?

我不确定我是否理解您的问题,但请尝试以下方法:

Flex 3:

<mx:HBox horizontalGap="0">
   <mx:Label text="{firstNum}"/>
   <mx:Label text=" - "/>
   <mx:Label text="{secondNum}"/>
</mx:HBox>
<s:Group>
   <s:layout>
      <HorizontalLayout gap="0"/>
   </s:Layout>
   <mx:Label text="{firstNum}"/>
   <mx:Label text=" - "/>
   <mx:Label text="{secondNum}"/>
</s:Group>

Flex 4:

<mx:HBox horizontalGap="0">
   <mx:Label text="{firstNum}"/>
   <mx:Label text=" - "/>
   <mx:Label text="{secondNum}"/>
</mx:HBox>
<s:Group>
   <s:layout>
      <HorizontalLayout gap="0"/>
   </s:Layout>
   <mx:Label text="{firstNum}"/>
   <mx:Label text=" - "/>
   <mx:Label text="{secondNum}"/>
</s:Group>

当然,您可以将水平间隙设置为您喜欢的任何值。 这将使标签控件在父容器允许的范围内从左向右流动

更新:

如果您的意思是标签之间的间距太大,请尝试将padding(您有)、margin和horizontalGap/gap设置为0


如果这仍然不起作用,请输入一些代码或屏幕截图好吗?

有几种解决方案:

  • 设置负填充
  • 在容器中设置负
    水平间隙
  • 转到Flex 4和Spark标签-它没有这样的问题

  • 有几种解决方案:

  • 设置负填充
  • 在容器中设置负
    水平间隙
  • 转到Flex 4和Spark标签-它没有这样的问题

  • 是的,对不起,那个问题真的不清楚。现在编辑-希望更有意义。是的,对不起-这个问题真的不清楚。现在编辑-希望有更多的意义。