2010-02-25 1 views
2

Я хочу заполнить компонент horizontalList из xml-файла, значение ширины будет также находиться в файле xml со всеми данными.Horizontallist variable width

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

<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

ответ

0

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

  • Set label.width = data.width на creationComplete
  • Wrap этикетки в Canvas

Путь 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> 

... или w постучала в Canvas:

<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

+0

спасибо за вашу помощь. Я пробовал этот код, но все тот же вопрос. Ширина всегда одинакова для всех элементов. У меня нет намека на это :-( –

+0

какая версия Flex вы используете? Это работает для меня. –

+0

У меня есть flex builder 3, , что я действительно хочу реализовать - это что-то вроде этого http://jaganath.files.wordpress.com/2006/12/guide.PNG, может быть, есть еще один простой компонент, который я могу использовать ... –