Flex垂直滚动条问题

时间:2009-09-18 05:36:20

标签: flex

我在弹性滚动条中有问题。我有一个基于canvas的mxml组件。在里面,我使用了VBox作为我的表格。在那个Vbox之上我还有另一个用于标题的画布。

当内部的网格填充了更多数据时,我的表单会比正常的屏幕大小更长。在这种情况下,我想要一个垂直滚动条只适用于我的表单所在的Vbox。但整个画布正在滚动条包括标题画布。如何解决这个问题呢。

我将主画布的垂直滚动条策略设置为关闭,并将Vbox的VerticalScrollbarPolicy设置为on。但那不起作用。它不会覆盖父容器的属性。

感谢。

3 个答案:

答案 0 :(得分:3)

将您的表单保留在父画布内的Canvas中,而不是VBox中。 VBox和HBox设置为在父容器中自动增长,因此如果您的表单增长,您的相应VBox也会增长。

答案 1 :(得分:1)

您希望为父画布重载“updateDisplayList”函数,并强制将表单Vbox的高度设置为canvasHeight-titleHeight(包括填充,空格等等),以便VBox永远不会大于屏幕。这将解决您的问题。只需确保检查VBox是否存在,因为有时updateDisplayList将在实例化之前被调用。

答案 2 :(得分:0)

我自己也有同样的问题,决定采取简单的方法。 有以下
App-> vbox-> [vbox + hbox] 组件被动态添加到最后一个vbox。希望hbox留在屏幕上并且仅在vbox上面有滚动条(第二个vbox) 遇到了同样的问题。除最后一个vbox外,所有容器的滚动策略=关闭,但在动态添加组件时,当组件填充vbox时> 100%,外部vbox将开始滚动。
一旦我回到文档,决议很简单 设置滚动策略 - 应用程序的水平和垂直以及第一个vbox关闭,并添加autoLayout = false。这会导致引擎在初始化后不调整组件大小,即它们是静态大小的 添加此属性后,除内部vbox外,不再有滚动条。
多田!