2009-05-06 12 views

Odpowiedz

21

Możesz to zrobić, korzystając z metody getTabAt() TabNavigatora, która zwraca przycisk, który tworzy zakładkę wizualną. Następnie możesz ustawić widoczną właściwość tego przycisku. Trochę trudno jest uzyskać tę konfigurację z powiązaniami, ale jest to wykonalne.

Można również rozważyć wyłączenie zakładki, co można zrobić, ustawiając włączone na odpowiednim dziecku TabNavigator (dla którego widoczne nie działa).

+2

To działa dobrze, dziękuję. Musisz również ustawić includeInLayout na przycisku. Skończyło się na tym, że wdrażałem je z normalnymi słuchaczami i nie przejmowałem się próbą zrobienia tego za pomocą wiązań. –

+0

Dzięki temu, miałem ten sam problem dzisiaj. –

1

Co masz na myśli przez hide? Jeśli faktycznie chodzi o usunięcie, po prostu weź tablicę powiązaną z danymi w TabNavigator i usuń z niej odpowiedni element.

Jeśli chcesz po prostu usunąć je tymczasowo, stwórz własny komponent, który otacza TabNavigator i ma tablicę usuniętych kart oraz tablicę rzeczywistych kart. Następnie postępuj zgodnie z tym, co uważasz za stosowne.

+1

Mam na myśli "nie pokazuj, tymczasowo". Usunięcie go z TabNavigatora wydaje się przesadą. Byłoby miło zrobić to w taki sposób, że po prostu używa wiązań ... –

1

Możesz chcieć sprawdzić projekt flexlib. Mają składnik o nazwie SuperTabNavigator, który dodaje wiele funkcji do podstawowego Flex TabNavigator, w tym ukrywanie kart (myślę).

Jeśli jednak trzeba utworzyć własny komponent, jest to nieco trudniejsze. Należy wiedzieć, że "tabulatory" to w rzeczywistości specjalnie zaprojektowane przyciski, zawarte w komponencie TabBar (TabBar jest wtedy zawarty w TabNavigator). To, co musisz wtedy zrobić, to podklasa TabNavigator i ma jakąś własność na twoich widokach (to jest płótnach itp., Które są dodawane do TabNavigatora), która jest związana z właściwościami widocznymi i includeInLayout przycisków TabBar.

W istocie, co będziesz miał coś takiego jak:

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

nie wiem o TabNavigator, ale w innych pojemnikach, można ustawić właściwość includeInLayout do false i zostanie ona zignorowana. Prawdopodobnie nadal musisz połączyć go z visible.

0
var secondTab = tabNavigator.removeChildAt(0); 
Powiązane problemy