apache-flex Flex 4调整组内组的大小

idv4meu8  于 2022-11-01  发布在  Apache
关注(0)|答案(1)|浏览(141)

我正在尝试自动调整s:Group中的子组大小。子组是另一个s:Group和一个H:Group。每个子组的百分比宽度分别为10%和90%。问题是当其中一个组被调整大小(使用皮肤中的过渡和旋转组合)时,另一个组不会自动调整大小以填充空间?
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>
9wbgstp7

9wbgstp71#

实现这类操作的最佳方法是绑定Flex组件生命周期方法,特别是updateDisplayList()。UpdateDisplayList()用于定位和调整子组件的大小。它有两个参数,即组件的高度和宽度。然后,您可以编写一个算法,根据组件的高度和宽度来调整子组件的大小和位置。
MXML以一种黑魔法的方式在幕后完成了这一切;但是如果您自己编写布局代码,则可以获得更多的控制权。

相关问题