2009-05-06 86 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); 
相关问题