我有一个带有自定义 Itemrenderer 的火花列表。我使用 virtuallayout ,因为我将它与大约 500 个元素绑定。
我跟踪了项目渲染器的 datachange 事件,我发现在第一次加载时大约有 120 个项目绑定到列表。我只需要在舞台上显示 10 个项目,所以我想减少在列表中获取的项目数量,是否有一个属性或函数可以覆盖以获得这种行为?
代码如此简单
<s:List id="thumbnailList" verticalScrollPolicy="off"
useVirtualLayout="true" itemRenderer="ThumbnailItemRenderer" >
<s:layout>
<s:HorizontalLayout gap="10" requestedColumnCount="10" />
</s:layout>
</s:List>
项目渲染器
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
autoDrawBackground="false" >
<fx:Script>
override public function set data(value:Object):void{
super.data=value;
if(data !=null){
LoadImg();
}
}
protected function LoadImg():void{
trace(data.pagnum.toString());
var cacheDir:File=null;
cacheDir= Config.DirCache();
var folder:File = new File(cacheDir.nativePath + Config.CATALOG_FOLDER_NAME + Config.selected_catalog_id + "/");
var file:File = new File(folder.nativePath + "/" + data.pagnum.toString() + "_th.jpg");
trace(file.url);
thumbnail.source = file.url;
cacheDir=null;
folder=null;
file=null;
}
</fx:Script>
<s:Image id="thumbnail" top="0" left="0" right="0" bottom="0" scaleMode="letterbox" cacheAsBitmap="true" />
</s:ItemRenderer>
和列表的绑定
thumbnailList.dataProvider= {ArrayCollection with about 480 items}