我正在使用 Flex/AIR 开发桌面应用程序,但我遇到了 Spark List 控件的问题。
情况如下:我有一个带有项目渲染器的列表。我不使用 itemRendererFunction,所以我只有一种渲染器。然而,这个渲染器可以有不同的大小,这取决于连接到它的数据的类型。请看我的 ItemRenderer 的代码:
<s:HGroup verticalAlign="middle">
<s:CheckBox id="glazingNorthCheckBox" selected="false"/>
<s:TextInput text="{data is VerticalSolidComponent ? data.window.areaNorth : data.skylight.area}"/>
<s:Label text="m²"/>
</s:HGroup>
<s:HGroup verticalAlign="middle" includeInLayout="{data is VerticalSolidComponentWithGlazing}"
visible="{data is VerticalSolidComponentWithGlazing}">
<s:CheckBox id="glazingEastCheckBox" selected="false"/>
<s:TextInput text="{data.window.areaEast}"/>
<s:Label text="m²"/>
</s:HGroup>
因此,如您所见,第二个 HGroup 并不总是包含在布局中。这就是为什么我的列表计算错误的高度。
在这里您可以看到列表的代码:
<s:List id="solidComponentsList" dataProvider="{data.solidComponents}" itemRenderer="View.BuildingGeometry.DetailView.SolidComponentItemRenderer" skinClass="View.Skins.CustomListSkin" useVirtualLayout="true">
<s:layout>
<s:VerticalLayout gap="10" horizontalAlign="left" variableRowHeight="true" useVirtualLayout="true" paddingTop="20" paddingLeft="20" requestedMaxRowCount="4"/>
</s:layout>
</s:List>
你能给我一些建议如何计算列表的正确大小吗?
先感谢您!