在Flex中自动调整大小和定位

时间:2010-01-04 15:38:17

标签: flex flex3 adobe

我正在开发一个使用XML模板动态创建DisplayObjects的flex应用程序。这些模板定义了可用于应用程序中每个内容页面的不同布局(即2列,3列等)。管理员可以从其中一个中进行选择,并使用其内容填充每个区域。

模板添加3种类型的DisplayObject中的一种 - HBox,VBox或第三种组件 - LibraryContentContainer(定义为应用程序一部分的mxml组件) - 实际上是一个带有TextArea的canvas元素。

我遇到的问题是我需要每个区域自动调整大小以适应内容的长度,但似乎无法找到有效的方法。

在LibraryContentContainer中,当设置TextArea的值时,我在LibraryContentContainer上调用.validateNow()。然后,我在TextArea和LibraryContentContainer上设置 height 属性,以匹配TextArea的 textHeight 属性。

在下面的示例中, this 是LibraryContentContainer, viewer 是TextArea,TextArea的value属性绑定到此.__ Value。 v 是包含textarea

内容的变量
this.__Value = v;
this.validateNow();

this.viewer.height = this.viewer.textHeight;
this.height = this.viewer.height; 

这在某种程度上起作用,因为TextArea根据内容的长度增长或缩小,但它仍然不是很好 - 有时甚至还有垂直滚动条,即使TextArea的大小已经增长。

有人有任何想法吗?

由于

亚当

1 个答案:

答案 0 :(得分:0)

我认为问题不在于动态添加的组件,而在于它们被添加到组件中。如何确定该组件的高度?如果将此容器上的verticalScrollPolicy和horizo​​ntalScrollPolicy设置为off,滚动条是否会消失?如果是这种情况,那么您需要查看此组件的大小,而不是您的hbox,vbox或其他任何内容。