Horizonallist переменной ширины - PullRequest
2 голосов
/ 25 февраля 2010

Я хочу заполнить компонент HorizontalList из файла XML, значение ширины будет также в файле XML со всеми данными.

на самом деле у меня есть этот код:

<mx:Model id="epg" source="epg.xml" /> 

<mx:Component id="customRend">
    <mx:Label text="{data.description}" width="{data.width}"/> 
</mx:Component>

<mx:HBox x="82" y="104" width="1203" height="113" verticalAlign="middle">
    <mx:HorizontalList width="100%"  dataProvider="{epg.channel.program}" 
        itemRenderer="{customRend}" horizontalScrollPolicy="off">
    </mx:HorizontalList> 
</mx:HBox>

но он устанавливает одинаковую ширину для всех элементов в списке.

Вы знаете, как это сделать?

Большое спасибо. Br

1 Ответ

0 голосов
/ 25 февраля 2010

Два способа сделать это:

  • Set label.width = data.width on creationComplete
  • Оберточная этикетка на холсте

Способ creationComplete (возможно, потому что itemRenderer должен быть контейнером?)

<mx:HorizontalList width="100%" dataProvider="{epg.channel.program}"  horizontalScrollPolicy="off">
    <mx:itemRenderer>
        <mx:Component id="customRend">
            <mx:Label text="{data.description}" creationComplete="this.width = data.width"/> 
        </mx:Component>
    </mx:itemRenderer>
</mx:HorizontalList>

... или завернутый в холст:

<mx:HorizontalList width="100%" dataProvider="{epg.channel.program}"  horizontalScrollPolicy="off">
    <mx:itemRenderer>
        <mx:Component id="customRend">
            <mx:Canvas horizontalScrollPolicy="off">
                <mx:Label text="{data.description}" width="{data.width}"/> 
            </mx:Canvas>
        </mx:Component>
    </mx:itemRenderer>
</mx:HorizontalList>

Надеюсь, это поможет, Lance

...