0

私のアプリでは、Twitter のタイムラインをインポートします。ツイートには画像が含まれるものと含まれないものがあります。また、画像の高さも可変です。画像がグループに収まるように(垂直レイアウトで)幅を90%に設定していますが、何をしても、グループはスケーリングされた高さではなく、元の画像から高さを取得します。variableRowHeight="true" を設定しようとしましたが、何もしないようです。サンプル コードを次に示します。

<s:List id="list" y="0" width="90%" height="954" dataProvider="{tweets}" horizontalCenter="0">
    <s:layout>
        <s:VerticalLayout/>
    </s:layout>
    <s:itemRenderer>
        <fx:Component>
            <s:ItemRenderer>
                <s:Group width="100%">
                <s:Label id="twitlabel" text="{tweetImage.height}"
                             width="100%"
                             styleName="tweetlist"/>
                    <s:Image id="tweetImage" y="{twitlabel.height}" width="90%" horizontalCenter="0" scaleMode="letterbox" smooth="true" source="{data.entities.media[0].media_url}"/>
                </s:Group>
            </s:ItemRenderer>
        </fx:Component>
    </s:itemRenderer>

問題は、グループの高さをスケーリングされた画像の高さに設定するにはどうすればよいですか?

4

1 に答える 1

0

最初に、イメージの「完了」イベント ハンドラーとグループの ID を設定します。

 <s:Group id="tweetImageGroup" width="100%">
 <s:Image id="tweetImage" y="{twitlabel.height}" horizontalCenter="0" scaleMode="letterbox" smooth="true" source="{data.entities.media[0].media_url}" complete="tweetImage_completeHandler(event)"/>

次に、画像の読み込みが完了した後に幅を設定します。

protected function tweetImage_completeHandler(event:Event):void{
   tweetImageGroup.height = event.currentTarget.measuredHeight;
}

これには多少の調整が必要になる場合がありますが、問題を正しく理解していれば機能するはずです。

于 2013-06-25T06:54:29.567 に答える