Flex TextArea 自动调整大小行为 - 这可能吗?
对于多行 TextArea Flex 组件,希望能够持续输入文本并让 TextArea 在垂直方向自动调整大小,以便一次显示所有输入的文本。 但是,TextArea 希望将布局流中的所有组件向下推。 相反,希望 TextArea 延伸到它们之上。 文本输入完成后,TextArea 应该收缩并重新绘制到正常边界。
For a multi-line TextArea Flex component, want to be able to keep entering text and have the TextArea auto-resize in the vertical direction so that all the entered text is shown at once. However, TextArea wants to push any components down in the layout flow. Instead, want the TextArea to extend over on top of them. Once the text entry is done, then the TextArea should shrink back and redraw itself to its normal bounds.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果 TextArea 所在的容器使用“绝对”定位(如 Canvas),则这将起作用。 只需测量 TextArea 上的 textHeight,当它达到 TextArea 高度内的某个范围时,将高度调大。 不过,您仍然需要修复 z 顺序,因为 TextArea 可能想要向下拉伸到其他组件后面。
If the container the TextArea is in is using 'absolute' positioning (like a Canvas), this will work. Just measure textHeight on the TextArea and when it gets to a certain range within the TextArea's height, make the height bigger. You'll still have to fix the z-order, though, because the TextArea may want to stretch down behind other components.
对 TextArea 类进行子类化并重写measure() 方法,以将测量尺寸设置为文本区域的文本大小。 您还可以添加事件侦听器,以使文本输入或父级重新布局时子类 TextArea 的大小和父级大小无效。
这是我创建的一个简单的类:
Sub-class the TextArea class and override the measure() method to set the measured dimensions to the size of the text of the text area. You can also add in event listeners to invalidate the size and parent size of the sub classed TextArea on text input or a re-layout of the parent.
This is a simple class that I've created: