0

在我的应用程序中,我导入了一个 Twitter 时间线。有些推文包含图像,有些则没有。imqages 的高度也是可变的。我设置了 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

首先为您的 Image 设置“完成”事件处理程序,并为您的 Group 设置一个 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 回答