2011-01-19 3 views
2

У меня возникли проблемы с созданием динамических вкладок вот мой код:Flex динамические вкладки с использованием ViewStack

MXML:

<s:TabBar x="1" y="1" height="32" width="100%" dataProvider="{tabHolder}" chromeColor="#EF8B01"/> 
    <mx:ViewStack x="2" y="34" id="tabHolder" width="100%" height="214" creationPolicy="all">   
     <s:NavigatorContent label="Home" width="100%" height="100%"> 
      <mx:Image x="6" y="8" height="181" width="402"/> 
     </s:NavigatorContent>   
    </mx:ViewStack> 

как:

var newTab:NavigatorContent = new NavigatorContent(); 
      newTab.label = "Dynamic";         
      var lab:Label = new Label(); 
      lab.text = "Dynamic context";         
      newTab.addChild(lab); 

      tabHolder.addChild(newTab); 

вкладка не была добавлена, что неправильно?

+0

ли у вас есть шанс попробовать ответ я отправил ниже? –

ответ

4

Следующие работали для меня. Единственное, что я изменил, это использовать метод addElement() вместо addChild(), чтобы добавить вкладку в стеке просмотра.

MXML:

<mx:Button id="myButton" label="Add Tab" click="myButton_clickHandler(event)" /> 
<s:TabBar x="1" y="31" height="32" width="100%" dataProvider="{tabHolder}" chromeColor="#EF8B01"/> 
<mx:ViewStack x="2" y="64" id="tabHolder" width="100%" height="214" creationPolicy="all">   
    <s:NavigatorContent label="Home" width="100%" height="100%"> 
    <mx:Image x="6" y="8" height="181" width="402"/> 
    </s:NavigatorContent>   
</mx:ViewStack> 

ActionScript:

protected function myButton_clickHandler(event:MouseEvent):void 
{ 
    var newTab:NavigatorContent = new NavigatorContent(); 
    newTab.label = "Dynamic";         
    var lab:Label = new Label(); 
    lab.text = "Dynamic context";         
    newTab.addElement(lab); 
    tabHolder.addElement(newTab); 
} 
+0

работает! Спасибо – Janci

Смежные вопросы