取消设置flex组件的显式高度值?

时间:2011-03-22 15:18:22

标签: flex flex4

当声明容器组件而未设置特定高度值时,contaniner的高度将自动设置为一个值,该值可以显示其所有内容/子项而无需滚动(如果可能)。

在使用适当的高度初始化组件后,我明确地更改了容器的高度值。

我的问题是,在更改组件的高度后,是否可以切换回根据容器内容自动设置的原始高度?我正在寻找一些方法来取消组件高度的显式值。

3 个答案:

答案 0 :(得分:5)

可能对您有用的一个技巧是将高度设置为“NaN”,这有效地“取消”您之前设置的显式值。

答案 1 :(得分:1)

在手动更改之前不存储原始高度,我不相信这是可能的。

您可以做的是扩展您用作容器的任何基础对象,以添加名为OriginalHeight的新属性(当您在那里时也可以添加OriginalWidth)。

然后,您将覆盖set height函数,以便在新OriginalHeight属性更改之前将原始高度存储起来。当您需要将其设置回来时,您只需设置容器的height = OriginalHeight

答案 2 :(得分:1)

  

contaniner的高度将是   自动设置为值

这不是很自动。组件将始终设置子项的高度和宽度;但它永远不能设置自己的高度和宽度。它只能提出建议(通过设置measuredHeight和measuredWidth属性使用measure方法)。由父容器决定是否要使用或忽略那些measuredHeight / measuredWidth值。

Flex Framework容器都具有用于计算高度/宽度/位置的代码。如果您使用它们,它可能看起来是自动的;但它实际上是一个相当手动的过程。你只是使用别人写的代码。

如果明确更改容器的高度值,您是如何做到的?在容器内(this.height = newvalue)?或者父母是否以某种方式改变了身高(myContainer.height=newValue)?

除此之外,它取决于原始高度值。您可以使用measuredHeight值,但我不会指望它。虽然,如果您指定绝对高度和绝对宽度,则永远不会运行测量。

杰森关于存储旧值的答案可能是最好的。