Flex 4 TabNavigator组件或TabBar加ViewStack组合组件的选择
Flex 4中有两种方法来实现Tabbed Navigation功能,TabNavigator组件或TabBar加ViewStack的组合组件都能完成该功能,但这两者有各自的优缺点。
如果不注重外观又想实现得简单,那么就选择TabNavigator组件吧;如果注重外观,那么就一定要选择TabBar加ViewStack的组合组件了,我个人必定选择第二种。
下面让我们来看一看我为什么这么说吧。
TabNavigator组件的使用:
<mx:TabNavigator>
// NavigatorContent的label就是上面标签栏的显示。
// NavigatorContent的内容就是选定标签的相应显示内容。
<s:NavigatorContent label="Panel 1"/>
<s:NavigatorContent label="Panel 2"/>
<s:NavigatorContent label="Panel 3"/>
</mx:TabNavigator>
优点:实现简单
缺点:自定义外观比较麻烦(TabNavigator是mx组件不能使用skinClass来自定义外观,只能用css样式。因为Flex 4默认主题spark的强大,所以我们一定是使用spark主题来实际开发,而在spark主题下大部分用来设置TabNavigator样式的css样式都用不了了。)
TabBar加ViewStack组合组件的使用:
<s:VGroup gap="0">
<s:TabBar dataProvider="{vs}"/>
// NavigatorContent的label就是TabBar标签栏的显示。
// NavigatorContent的内容就是选定TabBar标签的相应显示内容。
<mx:ViewStack id="vs" borderStyle="none">
<s:NavigatorContent label="Panel 1"/>
<s:NavigatorContent label="Panel 2"/>
<s:NavigatorContent label="Panel 3"/>
</mx:ViewStack>
</s:VGroup>
优点:轻松自定义外观(看到TabBar是spark组件就能知道为什么说是“轻松自定义外观”了吧,强大的skinClass让你无所不能,就不用我多说了吧。)
缺点:实现起来比TabNavigator稍稍复杂一点(对大家来说这么一点复杂性和没有也差不多吧。)