在我的应用中,我导入了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>
问题是,如何让小组将其高度设置为缩放的图像高度?
答案 0 :(得分: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;
}
这可能需要一些调整,但如果我正确理解你的问题就应该有效。