动态添加滚动条到flex组件

时间:2011-09-08 13:41:36

标签: flex flex4 scroll scrollbar mxml

我长期坚持这一点。我认为这很简单所以我必须误解一些事情。任何帮助/指针都表示赞赏。

我有一个火花形式的组件,如

label1:textbox1
label2:textbox2 label3:textbox3等

我希望这些显示在我的Flash应用的整个宽度上。当我缩小flash播放器的宽度时,我想要一个滚动条出现。目前没有滚动条出现。

我的代码是:

<s:layout>
    <s:VerticalLayout horizontalAlign="left" paddingTop="10" paddingBottom="10"/>
</s:layout>

<s:BorderContainer borderVisible="false">
    <s:layout>
        <s:HorizontalLayout/>
    </s:layout>
    <s:Form id="custAccountForm" height="100%">
        <s:layout>
            <s:FormLayout gap="-10" paddingLeft="-15" paddingRight="-45"/>
        </s:layout>
        <s:FormHeading label="Customer/Account Details"/>
        <s:FormItem label="CustomerName">
            <s:TextInput width="100%"/>
        </s:FormItem>
        <s:FormItem label="Account">
            <s:TextInput width="100%"/>
        </s:FormItem>
        <s:FormItem label="Currency">
            <s:ComboBox id="currencyCB" width="100%"/>
        </s:FormItem>
        <s:FormItem label="Account Balance">
            <s:TextInput width="100%" maxChars="24"/>
        </s:FormItem>
    </s:Form>
</s:BorderContainer>

如何在此应用程序小于表单时显示垂直/水平滚动条。

由于

1 个答案:

答案 0 :(得分:0)

您需要添加scroller。 Flex 4.0 Spark Architecture不会像使用Halo / MX样式控件那样将滚动条烘焙到容器中。从概念上讲,你可以这样做:

<s:Scroller width="200" height="200">
 <s:Group width="100%" height="100%" clipAndEnableScrolling="true">

 <s:BorderContainer borderVisible="false">
...
    <s:Form id="custAccountForm" height="100%">
..
    </s:Form>
 </s:BorderContainer>
 </s:Group>
</s:Scroller>

在我的使用中,我发现如果给定明确的高度和宽度,Scroller效果最好;如果给定百分比高度和宽度将大小为它的内容 - 这意味着你没有滚动条。如果你需要他的浏览器改变大小;当容器改变时,你将不得不改变卷轴的高度和宽度。可能使用updateDisplayList()来调整大小。