That makes no difference. I did notice that <VerticalLayout/> always virtualises regardless of whether useVirtualLayout is true or false.
It looks like <TileLayout/> never virtualises, so I suspect it's a bug, but I haven't had a chance to look into how layouts work to confirm this. On Fri, Feb 14, 2014 at 5:37 PM, Alex Harui <aha...@adobe.com> wrote: > > > useVirtualLayout property? > > From: Chris Velevitch <chris.velevi...@gmail.com> > Reply-To: "flexcoders@yahoogroups.com" <flexcoders@yahoogroups.com> > Date: Thursday, February 13, 2014 7:34 PM > To: "flexcoders@yahoogroups.com" <flexcoders@yahoogroups.com> > Subject: [flexcoders] Whay are too many itemrenderers being created? > > > > I'm using Flex 4.11 with Air 4.0 to create a mobile app. > > I have a spark list with a custom mxml itemRenderer. Only 4 instances > will be visible in the list. The dataprovider is initially empty. > > When I assign the array collection with an array of 147 items, I get 147 > traces on dataChange event and on the render event. I traced out the value > of 'this' and I get 147 unique objects. > > I was under the impression that only 4 instances of the itemRenderer > will be created and get reused as I scroll through the list. > > What have I overlooked? > > The list is defined as:- > > <s:List id="lImages" dataProvider="{imageList}" width="100%" > height="100%" allowMultipleSelection="true" > change="lImagesChange(event)" itemRenderer="PhotoThumbNail" > doubleClickEnabled="true" doubleClick="showImage(event)"> > <s:layout> > <s:TileLayout/> > </s:layout> > </s:List> > > and the itemRenderer is defined as:- > > <?xml version="1.0"?> > <s:ItemRenderer > xmlns:fx="http://ns.adobe.com/mxml/2009" > xmlns:s="library://ns.adobe.com/flex/spark" > dataChange="onDataChange(event)" > render="onRender(event)" > width="150" height="175" > > > > <s:layout> > <s:VerticalLayout/> > </s:layout> > > <fx:Script><![CDATA[ > import DateUtils; > > import mx.events.FlexEvent; > > private function onDataChange(event:FlexEvent):void { > trace(DateUtils.currentTime() + "PhotoThumbNail.onDataChange: > dataChange event, index=" + itemIndex + ", this="+this); > } > > private function onRender(event:Event):void { > trace(DateUtils.currentTime() + "PhotoThumbNail.onRender; > render event, index=" + itemIndex + ", this="+this); > } > ]]></fx:Script> > <s:BitmapImage source="{data.image}" width="150" height="150"/> > <s:Label text="{data.timestamp}" width="150"/> > > </s:ItemRenderer> > > -- > > > Chris > -- > Chris Velevitch > Manager - Adobe Platform Users Group, Sydney > m: 0415 469 095 > www.apugs.org.au > > Adobe Platform Users Group, Sydney > Topic: TBD > Date: Monday, 28th February > Details and RSVP on http://www.meetup.com/Sydney-Adobe-Platform-User-Group > > > > > -- Chris -- Chris Velevitch Manager - Adobe Platform Users Group, Sydney m: 0415 469 095 www.apugs.org.au Adobe Platform Users Group, Sydney Topic: TBD Date: Monday, 28th February Details and RSVP on http://www.meetup.com/Sydney-Adobe-Platform-User-Group