0

次のコードは、List コントロールを使用してコメントのリストを表示します。アイテムの高さは固定値 (150) に設定されているため、機能しているように見えます: コンテンツが長すぎる場合、スクロールバーが表示されます...

しかし、本当に欲しいのは、高さを設定するのではなく、コンテンツのサイズに応じて変更できるようにすることです。これを達成する方法はありますか?

        <mx:List id="commentList" width="100%" dataProvider="{commentSet.commentArrayColl}"
            rowCount="{commentSet.commentArrayColl.length}" >
            <mx:itemRenderer>
                <mx:Component>
                    <mx:VBox width="100%" height="150" >
                        <mx:Text text="{data.commentContent}" />
                        <mx:Text text="{data.username} ({data.modified})"/>
                    </mx:VBox>
                </mx:Component>
            </mx:itemRenderer>
        </mx:List> 

編集:より明確にするために、itemRendererのVBoxの高さを「150」またはその他の固定値に設定したくありませんが、そうしないとテキストの1行しか表示されません。だから私はこれから抜け出す方法を探しています。(VBox が itemRenderer 内にない場合、テキスト フィールドの文字列の長さが大きくなるにつれて、高さが自動調整されます。それが私が望んでいることです。)

4

2 に答える 2

3

dataProvider.length * 150 の関数をバインドする高さプロパティを追加します。

    <mx:List id="commentList" width="100%" dataProvider="{commentSet.commentArrayColl}"
        rowCount="{commentSet.commentArrayColl.length}" height={commentSet.commentArrayColl.length*150}>
        <mx:itemRenderer>
            <mx:Component>
                <mx:VBox width="100%" height="150" >
                    <mx:Text text="{data.commentContent}" />
                    <mx:Text text="{data.username} ({data.modified})"/>
                </mx:VBox>
            </mx:Component>
        </mx:itemRenderer>
    </mx:List>
于 2010-06-17T07:04:27.973 に答える
1

VBoxで高さを設定せず、リストでvariableRowHeightをtrueに設定してください。リストがそれでどれほどうまくいくかはわかりませんが。

または、itemRenderリサイクルの利点を実際には使用していないため(rowCount = dataProvider.lengthのため)、リストの代わりにリピーターを使用することを検討することをお勧めします。

于 2010-06-17T10:18:40.713 に答える