在TabNavigator中隐藏选项卡的最佳方法是什么?

时间:2009-05-06 18:23:35

标签: actionscript-3 flex flex3

我想有条不紊地隐藏TabNavigator中的标签。似乎设置可见无法正常工作(可能是因为这是TabNavigator隐藏当前未选中的选项卡的方式。)

这样做的正确方法是什么?

5 个答案:

答案 0 :(得分:21)

您可以通过使用TabNavigator的getTabAt()方法来执行此操作,该方法返回构成可视选项卡的Button。然后,您可以设置Button的可见属性。使用绑定来设置这个设置有点棘手,但它是可行的。

您也可以考虑仅禁用该选项卡,您可以通过在相应的TabNavigator子项上设置启用(可见不起作用)来执行此操作。

答案 1 :(得分:1)

hide是什么意思?如果你的意思是删除,那么只需将你的数组绑定到TabNavigator中的数据,然后从中删除适用的元素。

如果您想暂时删除它们,请创建一个自己的组件,用于封装TabNavigator并具有一系列已删除的选项卡和一组实际选项卡。然后按照你的意愿处理。

答案 2 :(得分: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" );

答案 3 :(得分:0)

我不知道TabNavigator,但在其他容器中,您可以将includeInLayout属性设置为false,它将被忽略。您可能仍需要将其与visible结合使用。

答案 4 :(得分:0)

var secondTab = tabNavigator.removeChildAt(0);