Hi,

Until now I used this code to use an itemRenderer with a <j:List>

 <fx:Style>
        @namespace "http://www.w3.org/1999/xhtml";;
        @namespace j "library://ns.apache.org/royale/jewel";
        .MyplayImageListItemRenderer
        {
IItemRenderer: ClassReference("itemRenderers.MyplayImageListItemRenderer");
        }
 </fx:Style>
...

<j:List localId="lst_hcontent" className="MyplayImageListItemRenderer"/>

And the ItemRenderer class :

<j:ListItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009";
    xmlns:j="library://ns.apache.org/royale/jewel"
    xmlns:js="library://ns.apache.org/royale/basic"
    xmlns="http://www.w3.org/1999/xhtml";
    >

<j:Image localId="bmp" />
...

override public function set data(value:Object):void {
bmp.src = ...
}

</j:ListItemRenderer>

This is working great.

Now I need to set itemRenderer at runtime. I struggle to do it.

I tried the classic way before setting the dataprovider :

lst_hcontent.itemRenderer = new ClassFactory(MyplayImageListItemRenderer);

But it doesn't work

Also tried this code :

var factory:ClassFactory = new ClassFactory(MyplayImageListItemRenderer);
 factory.generator = MyplayImageListItemRenderer;
var dataIRBead:DataItemRendererFactoryForCollectionView = new DataItemRendererFactoryForCollectionView(factory);
 lst_hcontent.addBead(dataIRBead);

But in both case the itemRenderer is ignored.

I also tried to affect className at runtime like this :

lst_hcontent.className = "HBrowserItemMyPlayListRenderer";
But doesn't work

Could I have some help on doing it ? Thanks

Reply via email to