Apache flex Flex中的自动调整大小和定位

Apache flex Flex中的自动调整大小和定位,apache-flex,flex3,adobe,Apache Flex,Flex3,Adobe,我正在开发一个flex应用程序,它使用XML模板动态创建DisplayObjects。这些模板定义了可用于应用程序中每个页面内容的不同布局(即,2列、3列等)。管理员可以从其中选择一个,并用其内容填充每个区域 模板添加了三种类型的DisplayObject中的一种——HBox、VBox或第三种组件——LibraryContentContainer(定义为应用程序一部分的mxml组件)——这实际上是一个画布元素,内部有一个TextArea 我遇到的问题是,我需要自动调整这些区域的大小,以适应内容的

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

模板添加了三种类型的DisplayObject中的一种——HBox、VBox或第三种组件——LibraryContentContainer(定义为应用程序一部分的mxml组件)——这实际上是一个画布元素,内部有一个TextArea

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

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

在下面的示例中,这是LibraryContentContainer,viewer是TextArea,TextArea的value属性绑定到此。v是包含textarea内容的变量

this.__Value = v;
this.validateNow();

this.viewer.height = this.viewer.textHeight;
this.height = this.viewer.height; 
这在一定程度上是有效的,因为文本区域根据内容的长度而增长或收缩,但仍然不是很好——有时即使文本区域的大小已经增长,仍然会有垂直滚动条

有人有什么想法吗

谢谢


Adam

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

您好,谢谢您的回复。正在将动态组件添加到画布对象。它的尺寸是通过设置顶部、左侧、右侧和底部属性来确定的。我需要容器在必要时显示一个滚动条——我要确定的是容器中的子对象的尺寸,因为它们永远不需要单独的滚动条。但是,如果我没有理解您为什么问这个问题,我会将容器上的两个滚动策略都设置为off。外部滚动条消失了,但动态组件现在在底部被裁剪掉,仍然有一个滚动条,因此我建议设置滚动策略以确定滚动条显示在哪个容器上。我想也许你对内部容器的尺寸选择正确,但对外部容器的尺寸选择不正确,但事实似乎并非如此。这是:this.viewer.height=this.viewer.textHeight;this.height=this.viewer.height;您正在应用的唯一大小调整代码?实际上比这要复杂一些,因为我首先将HBox和VBox添加到画布对象,然后将LibraryContentContainers添加到HBox和VBox。它们的大小有两种不同的方式。VBox的高度通过添加其所有子项的高度来确定。HBox的高度取决于其子代的最大高度