【问题标题】:TextField's size in FlexFlex中TextField的大小
【发布时间】:2011-06-29 15:48:17
【问题描述】:

我正在将代码项目从 Flash AS 3 转换为 Flex 4。我遇到了 TextField 控件的问题。放置在其中的文本不会出现。我仔细检查过,它的宽度总是等于4。不管在里面放什么文字,它总是那么窄。我知道在 Flex 中,我应该为所有组件明确提供宽度和高度,但存在一些问题:

  1. 我不知道此类字段的初始大小 - 我希望它根据存储的文本自动确定其大小
  2. 还有几个包含它的其他容器,它们也应该自动调整大小,因此它们具有正确的大小来显示 TextField 的所有内容。

谢谢

【问题讨论】:

    标签: flash apache-flex actionscript-3 flex3 flex4


    【解决方案1】:

    首先,我假设您使用的是UITextField。如果没有,请使用那个。

    不碍事,将autoSize 属性设置为TextFieldAutoSize.RIGHT,并保留未定义的宽度。如果您的文本有多行,或者文本不适合一行但您希望全部显示,您需要将字段的宽度设置为百分比,通常为 100%(来自 actionscript 的 percentageWidth,宽度来自mxml),并保持高度未定义。

    如果有任何容器需要调整大小,我建议使用 VBox/HBox 而不是您正在使用的任何容器,并且它们的宽度(可能还有高度)也未定义。

    标签是使用已设置的文本字段的组件,其方式仅在一行上调整自身大小。即使您不想使用它们,也可以查看它们的源代码。

    文本组件类似于标签,但允许多行。同样,我建议查看他们的源代码。

    【讨论】:

    • 信不信由你,但你太棒了!:-) 非常感谢。它大概拯救了我的一天!
    【解决方案2】:

    也许您应该使用标签或文本输入而不是文本字段。 例如<s:Label text="my text" />

    【讨论】:

    • 好点,但有一个小问题 - 我不得不重写太多代码行,因为该项目使用 textFormat 和许多其他不能直接用于 Label 或 TextInput 的功能:/
    猜你喜欢
    • 2013-02-22
    • 2015-01-05
    • 2015-07-27
    • 1970-01-01
    • 2011-01-20
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多