Flex 4调整组内的组大小

时间:2011-04-19 09:58:02

标签: flex resize containers flex4

我正在尝试自动调整s:Group中的子项的大小。孩子们是另一个人:集团和H:集团。每个的百分比宽度分别为10%和90%。问题是当其中一个组调整大小(使用Skin中的过渡和旋转组合)时,另一个组不会自动调整大小以填充空间?

Flex不应该自动执行此操作吗?或者我必须编码吗?

<s:Group
    id="listsGroup"
    width="100%"
    height="255"
    >

    <s:Label text="LIST WITH HEADER TEST" styleName="h1" />

    <s:Group
        id="listsGroupSavedSearches"
        width="10%"
        height="255"
        >
        <components1:ListWithHeader
            id="categories11"
            dataProvider="{listModel}"
            headerLabel="Saved Searches"
            allowMultipleSelection="true"
            top="10" bottom="0"
            left="0" width="10%"
            />
    </s:Group>

    <s:HGroup left="160" width="90%" height="150" top="50" gap="6">
         <components1:ListWithHeader
            id="categories1"
            dataProvider="{listModel}"
            headerLabel="Category1 "
            allowMultipleSelection="true"
            width="100%"
            height="150"
            />
        <components1:ListWithHeader
            id="categories2"
            dataProvider="{listModel}"
            headerLabel="Category2"
            allowMultipleSelection="true"
            width="100%"
            height="150"
            />
        <components1:ListWithHeader
            id="categories3"
            dataProvider="{listModel}"
            headerLabel="Category3"
            allowMultipleSelection="true"
            width="100%"
            height="150"
            />
    </s:HGroup>
</s:Group>

1 个答案:

答案 0 :(得分:0)

解决此类问题的最佳方法是绑定Flex Component生命周期方法,特别是updateDisplayList()。 UpdateDisplayList()用于定位和调整子项的大小。它有两个参数,即组件的高度和宽度。然后,您可以根据组件的高度和宽度编写算法来确定子项的大小和位置。

MXML在幕后做这一切,有点像黑魔法一样;但如果您自己编写布局代码,您将获得更多控制权。