【问题标题】:Flex: Remove all space around text in labelFlex:删除标签中文本周围的所有空格
【发布时间】:2011-04-28 04:07:07
【问题描述】:

如果我在 Flex 中创建 mx:Labelmx:Text 控件,然后为其设置 opaqueBackground,我注意到文本周围有一些空间。

我希望能够摆脱文本与标签顶部和底部完全齐平的空间。更改间隙、填充和领先似乎没有帮助。是否可以让文本与标签的两侧完全齐平?

谢谢。

【问题讨论】:

  • 您尝试了哪些填充?包含文本的容器是否应用任何额外的填充/间隙
  • 什么容器里面有文字? mx:Label 还是 mx:Text?我不知道它是否应用了更多的填充/间隙。我知道对于这两个组件,我将 paddingLeft、paddingRight、paddingTop、paddingBottom、verticalGap、horizo​​ntalGap 设置为 0。

标签: apache-flex actionscript-3 user-interface text components


【解决方案1】:

您需要尝试给 Label 负 paddingTop 和 paddingBottom 直到它刷新。

【讨论】:

    【解决方案2】:

    问这个问题已经有一段时间了,但我认为问题在于标签和文本将 UITextField.TEXT_HEIGHT_PADDING 的值添加到一些测量内容(文本中的测量高度,标签中的 lineMetrics),这会导致这些控件出现有点不同。

    如果您检查,UITextField.TEXT_HEIGHT_PADDING 属性的当前值为 4,但它是一个 mx_internal 属性。我所做的是将 paddingTop 设置为-2,它似乎可以解决问题。我认为搞乱 measureHeight 可能会破坏 Label 和 Text 中的其他一些东西,所以我只是用填充来解决它......

    【讨论】:

      【解决方案3】:

      我发现最好的方法(删除所有填充/间距)是实际使用包装器(如 Canvas)来包装标签并根据需要进行自定义。

      有点难看,但这是我找到的唯一方法。

      【讨论】:

        【解决方案4】:

        恕我直言,它应该在 flex 中工作,高度也一样:

        label.width = label.textWidth
        

        【讨论】:

        • 这不起作用。它只是开始切断标签的文本部分。