我想有条不紊地隐藏TabNavigator中的标签。似乎设置可见无法正常工作(可能是因为这是TabNavigator隐藏当前未选中的选项卡的方式。)
这样做的正确方法是什么?
答案 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);