0

Flex/AIR を使用してデスクトップ アプリケーションを開発していますが、Spark List コントロールに問題があります。

ケースは次のとおりです。アイテムレンダラーを含むリストがあります。itemRendererFunction は使用しないので、1 種類のレンダラーしかありません。ただし、このレンダラーは、接続されているデータの種類によって、サイズが異なる場合があります。私の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>

ご覧のとおり、2 番目の 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>

リストの正しいサイズを計算する方法を教えてください。

前もって感謝します!

4

0 に答える 0