Apache flex 如何将TextArea高度设置为其内容高度

Apache flex 如何将TextArea高度设置为其内容高度,apache-flex,mxml,flex4,Apache Flex,Mxml,Flex4,我有一个mx:TextArea,我希望它的高度与它的内容高度相同。没有什么花哨的-只有一个文本区域和不可编辑的文本。我需要一个简单可靠的方法,使控制适合和显示所有的文本没有垂直滚动-像自动调整大小的东西。此外,我的控件的文本将只设置一次,并且不会更改,因为它将不可编辑 <mx:TextArea id="myTextArea" editable="false" width="100%" verticalScroll

我有一个mx:TextArea,我希望它的高度与它的内容高度相同。没有什么花哨的-只有一个文本区域和不可编辑的文本。我需要一个简单可靠的方法,使控制适合和显示所有的文本没有垂直滚动-像自动调整大小的东西。此外,我的控件的文本将只设置一次,并且不会更改,因为它将不可编辑

<mx:TextArea id="myTextArea"
             editable="false"
             width="100%"
             verticalScrollPolicy="off" >
   <mx:text>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla id lorem 
      quis ante pulvinar auctor at eget risus. Nulla facilisi. Morbi ultricies 
      dignissim lorem, quis suscipit felis ullamcorper et.
   </mx:text>
</mx:TextArea>

Lorem ipsum dolor sit amet,是一位杰出的献身者。无尾盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲
埃吉特·里索斯的普尔文纳拍卖行。无便利。多发性莫比
洛雷姆贵人,乌兰科佩尔等。

关于同一主题还有一篇文章,但与我无关,因为那里的设置要复杂得多,因为它包括样式和绑定。

除了滚动策略之外,我建议使用“wordWrap='true'”。

使用
文本区域的
文本高度
只读属性,并将TextArea的高度设置为TextArea.textHeight+
TextArea
使用的任何垂直填充加上顶部和底部边框的高度(检查
TextArea
组件并找出它们)。此过程应该在为
TextArea
添加到
change
事件的处理程序中发生

如果您想继续使用spark文本区域组件,请使用以下代码:

<s:TextArea 
   id="myTextArea"
   editable="false"
   width="100%"
   verticalScrollPolicy="off"
   change="myTextArea.height = myTextArea.scroller.viewport.contentHeight + 2;">
    <s:text>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla id lorem 
        quis ante pulvinar auctor at eget risus. Nulla facilisi. Morbi ultricies 
        dignissim lorem, quis suscipit felis ullamcorper et.
    </s:text>
</s:TextArea>

Lorem ipsum dolor sit amet,是一位杰出的献身者。无尾盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲盲
埃吉特·里索斯的普尔文纳拍卖行。无便利。多发性莫比
洛雷姆贵人,乌兰科佩尔等。

或者您可以将更改处理程序放入函数中。

我在这方面取得了巨大成功。它是轻量级的,只需一行就可以在所有文本区域上实现:
autosize($('.MyTextAreaClass')

不,不是这样。只有当文本超过容器的宽度时,自动换行才会将文本转移到新行。当文本通过代码设置时,即使在普通项目中也不起作用。我建议在
updateComplete
event上调整高度。其他注意事项:
textHeight
属性在spark组件上不可用。相反,只需在mxml中设置TextArea属性
heightInLines={NaN}
(或者在AS3中设置为NaN)。请参阅:可能的副本: