我想有条件地隐藏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