Гибкие динамические вкладки с использованием ViewStack - PullRequest
2 голосов
/ 19 января 2011

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

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);

вкладка не была добавлена, чтоне так?

1 Ответ

4 голосов
/ 22 января 2011

Следующее сработало для меня. Единственное, что я изменил, - это использование метода 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);
}
...