我想有條件地隱藏TabNavigator中的選項卡。似乎設置可見不能正常工作(可能是因爲這是TabNavigator隱藏當前未選中的選項卡的方式)。在TabNavigator中隱藏標籤的最佳方式是什麼?
什麼是正確的方法來做到這一點?
我想有條件地隱藏TabNavigator中的選項卡。似乎設置可見不能正常工作(可能是因爲這是TabNavigator隱藏當前未選中的選項卡的方式)。在TabNavigator中隱藏標籤的最佳方式是什麼?
什麼是正確的方法來做到這一點?
您可以通過使用TabNavigator的getTabAt()方法執行此操作,該方法返回構成可視選項卡的Button。然後,您可以設置該按鈕的可見屬性。使用綁定來獲得此設置有點棘手,但它是可行的。
您也可以考慮只是禁用該選項卡,您可以通過在相應的TabNavigator子項上設置啓用(可見不工作)來執行此操作。
你是什麼意思?如果你確實是指刪除,那麼就把你的數組綁定到TabNavigator中的數據,並從中刪除適用的元素。
如果您只想暫時移除它們,請創建一個封裝了TabNavigator的組件,並擁有一個已移除標籤和一組實際標籤數組。然後按照您認爲合適的方式處理。
我的意思是「暫時不顯示」。從TabNavigator中刪除它似乎是矯枉過正。這樣做會很好,只是使用綁定... – 2009-05-06 18:34:45
您可能想要查看flexlib項目。他們有一個名爲SuperTabNavigator的組件,它爲基礎Flex TabNavigator添加了很多功能,包括隱藏標籤(我認爲)。
但是,如果您確實需要創建自己的組件,那就更棘手了。要知道的是,「選項卡」實際上是特殊設計的按鈕,包含在TabBar組件中(TabBar包含在TabNavigator中)。那麼你需要做的是TabNavigator的子類,並且在視圖上有一些屬性(即添加到TabNavigator的畫布等),該屬性綁定到TabBar按鈕的visible和includeInLayout屬性。
在本質上,你必須是一樣的東西:
BindingUtils.bindProperty(tabButton, "visible", view, "someProperty");
BindingUtils.bindProperty(tabButton, "includeInLayout", view, "someProperty");
我不知道TabNavigator的,但在其他容器中,可以將includeInLayout
屬性設置爲false
,它會被忽略。您可能仍然需要將其與visible
結合使用。
var secondTab = tabNavigator.removeChildAt(0);
這很好,謝謝。您還需要在按鈕上設置includeInLayout。我最終只是用普通的監聽器來實現它,而不用擔心試圖用綁定來實現它。 – 2009-05-07 18:46:20