デフォルトの TreeItemrenderer を使用すると、ツリー コントロールでwordWrap=true
およびを設定することにより、ツリーの幅に応じて自動ワード ラッピングを有効にすることができます。variableRowHeight="true"
MXTreeItemRenderer (spark コンポーネントを mx itemrenderer として使用するためのラッパー) でこの動作を有効にしたいと考えています。Flexbuilder によって作成された MXTreeItemRenderer を使用し、ラベル コンポーネントに 100% の幅を追加しました (以下のコードを参照)。
ワード ラッピングは現在機能していますが、多くの場合、改行があるとアイテム レンダラーの高さの計算が正しくありません。固定幅で動作するようです。
これを正しくする方法はありますか?
<s:MXTreeItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<s:states>
<s:State name="normal" />
<s:State name="hovered" />
<s:State name="selected" />
</s:states>
<s:HGroup left="0" right="0" top="0" bottom="0" verticalAlign="middle">
<s:Rect id="indentationSpacer" width="{treeListData.indent}" percentHeight="100" alpha="0">
<s:fill>
<s:SolidColor color="0xFFFFFF" />
</s:fill>
</s:Rect>
<s:Group id="disclosureGroup">
<s:BitmapImage source="{treeListData.disclosureIcon}" visible="{treeListData.hasChildren}" />
</s:Group>
<s:BitmapImage source="{treeListData.icon}" />
<s:Label id="labelField" text="{treeListData.label}" paddingTop="2" width="100%"/>
</s:HGroup>
</s:MXTreeItemRenderer>