2009-05-06 70 views

回答

21

您可以通過使用TabNavigator的getTabAt()方法執行此操作,該方法返回構成可視選項卡的Button。然後,您可以設置該按鈕的可見屬性。使用綁定來獲得此設置有點棘手,但它是可行的。

您也可以考慮只是禁用該選項卡,您可以通過在相應的TabNavigator子項上設置啓用(可見不工作)來執行此操作。

+2

這很好,謝謝。您還需要在按鈕上設置includeInLayout。我最終只是用普通的監聽器來實現它,而不用擔心試圖用綁定來實現它。 – 2009-05-07 18:46:20

1

你是什麼意思?如果你確實是指刪除,那麼就把你的數組綁定到TabNavigator中的數據,並從中刪除適用的元素。

如果您只想暫時移除它們,請創建一個封裝了TabNavigator的組件,並擁有一個已移除標籤和一組實際標籤數組。然後按照您認爲合適的方式處理。

+1

我的意思是「暫時不顯示」。從TabNavigator中刪除它似乎是矯枉過正。這樣做會很好,只是使用綁定... – 2009-05-06 18:34:45

1

您可能想要查看flexlib項目。他們有一個名爲SuperTabNavigator的組件,它爲基礎Flex TabNavigator添加了很多功能,包括隱藏標籤(我認爲)。

但是,如果您確實需要創建自己的組件,那就更棘手了。要知道的是,「選項卡」實際上是特殊設計的按鈕,包含在TabBar組件中(TabBar包含在TabNavigator中)。那麼你需要做的是TabNavigator的子類,並且在視圖上有一些屬性(即添加到TabNavigator的畫布等),該屬性綁定到TabBar按鈕的visible和includeInLayout屬性。

在本質上,你必須是一樣的東西:

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

我不知道TabNavigator的,但在其他容器中,可以將includeInLayout屬性設置爲false,它會被忽略。您可能仍然需要將其與visible結合使用。

0
var secondTab = tabNavigator.removeChildAt(0); 
相關問題