2009-05-06 5 views

Respuesta

21

Puede hacerlo haciendo uso del método getTabAt() de TabNavigator que devuelve el botón que compone la pestaña visual. Luego puede establecer la propiedad visible de ese Botón. Es un poco complicado conseguir esta configuración con uniones, pero es factible.

También podría considerar deshabilitar la pestaña en su lugar, lo que puede hacer mediante la configuración habilitada en el correspondiente hijo de TabNavigator (para lo cual no funcionó visible).

+2

Esto funciona bien, gracias. También necesita establecer includeInLayout en el botón. Terminé simplemente implementándolo con oyentes normales y sin preocuparme por tratar de hacerlo con enlaces. –

+0

Gracias por esto, tuve el mismo problema hoy. –

1

¿Qué quieres decir con hide? Si realmente quiere decir eliminar, simplemente tome su matriz que está vinculada a los datos en el TabNavigator, y elimine el elemento correspondiente de ella.

Si solo desea que se eliminen temporalmente, cree un componente propio que encapsule el TabNavigator y que tenga una matriz de pestañas eliminadas y una matriz de pestañas reales. Luego maneja esto como mejor te parezca.

+1

me refiero a "do not show, temporarily". Quitarlo del TabNavigator parece excesivo. Sería bueno hacer esto de una manera que solo use enlaces ... –

1

Es posible que desee comprobar el proyecto flexlib. Tienen un componente llamado SuperTabNavigator que agrega mucha funcionalidad a la base Flex TabNavigator, incluidas pestañas ocultas (creo).

Si tiene que crear su propio componente, es un poco más complicado. Lo que hay que saber es que las "pestañas" son en realidad botones especialmente diseñados, contenidos dentro de un componente de TabBar (el TabBar está entonces dentro del TabNavigator). Lo que tendrá que hacer entonces, es la subclase TabNavigator y tiene alguna propiedad sobre sus vistas (es decir, los lienzos, etc. que se agregan al TabNavigator) que está vinculada a las propiedades visible e includeInLayout de los botones de TabBar.

En esencia, lo que tendrá es algo así como:

BindingUtils.bindProperty(tabButton, "visible", view, "someProperty"); 
BindingUtils.bindProperty(tabButton, "includeInLayout", view, "someProperty"); 
0

No sé sobre TabNavigator, pero en otros recipientes, se puede establecer la propiedad includeInLayout a false y será ignorado. Probablemente aún necesite combinarlo con visible.

0
var secondTab = tabNavigator.removeChildAt(0); 
Cuestiones relacionadas