Boa tarde a todos.
Meu caso é o seguinte:
Preciso bolar um esquema para minha aplicação que funciona mais ou menos assim. Ao clicar em determinado botão uma aba será aberta no canto superior da tela.
- Essa aba deve ser um container, que traga alguns componentes dentro dela. Portanto, esse container deve ser chamado(já deve existir). E ser chamado apenas uma vez(caso o botão seja clicado novamente, outra aba não pode ser aberta).
Tentei usar a propriedades visible mas não funcionou, uma vez que com isso só consigo esconder o Tab navigator, e não uma determinada aba do TabNavigator.
Tentei usar também o addChild, mas bati um pouco de cabeça e acabei não entendendo direito.
alguém já fez algo parecido? pode me passar a idéia de como devo resolver esta questão ???
Obrigado.
Cara você pode fazer +/- assim:
seu componente Navigator:
<s:NavigatorContent xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
public var visivel:Boolean;
private static var _instance:Tab2;
public static function getInstance():Tab2{
if(_instance == null){
_instance = new Tab2();
}
return _instance;
}
]]>
</fx:Script>
<s:DataGrid left="10" right="10" top="10" bottom="10" requestedRowCount="4">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="dataField1" headerText="Column 1"></s:GridColumn>
<s:GridColumn dataField="dataField2" headerText="Column 2"></s:GridColumn>
<s:GridColumn dataField="dataField3" headerText="Column 3"></s:GridColumn>
</s:ArrayList>
</s:columns>
<s:typicalItem>
<fx:Object dataField1="Sample Data" dataField2="Sample Data" dataField3="Sample Data"></fx:Object>
</s:typicalItem>
<s:ArrayList>
<fx:Object dataField1="data1" dataField2="data1" dataField3="data1"></fx:Object>
<fx:Object dataField1="data2" dataField2="data2" dataField3="data2"></fx:Object>
<fx:Object dataField1="data3" dataField2="data3" dataField3="data3"></fx:Object>
<fx:Object dataField1="data4" dataField2="data4" dataField3="data4"></fx:Object>
</s:ArrayList>
</s:DataGrid>
</s:NavigatorContent>
Dai voce pode chamar ele assim da sua application:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
private function onCluckShowTab2():void {
var tab2:Tab2 = Tab2.getInstance();
if(!tab2.visivel){
tab2.label = "Tab2";
tabNavigator.addChild(tab2);
}
}
]]>
</fx:Script>
<mx:TabNavigator id="tabNavigator" y="10" left="10" right="10" height="200">
<s:NavigatorContent width="100%" height="100%" label="Tab 1"/>
</mx:TabNavigator>
<s:Button x="10" y="225" label="Show Tab2" click="onCluckShowTab2()"/>
</s:Application>
ve se isso te ajuda :D…vlwww
Grande jffiorotto obrigado pela dica, e me desculpe pela demora da resposta.
Já tinha conseguido resolver esse problema, usei a lib SuperTabNavigator, que já resolveu boa parte dos meus problemas rsrs…
Mas valeu mesmo assim!!!
Att