我正在尝试自动调整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>
1条答案
按热度按时间9wbgstp71#
实现这类操作的最佳方法是绑定Flex组件生命周期方法,特别是updateDisplayList()。UpdateDisplayList()用于定位和调整子组件的大小。它有两个参数,即组件的高度和宽度。然后,您可以编写一个算法,根据组件的高度和宽度来调整子组件的大小和位置。
MXML以一种黑魔法的方式在幕后完成了这一切;但是如果您自己编写布局代码,则可以获得更多的控制权。