flex 4 tabbar – 禁用选项卡
发布时间:2020-12-15 01:47:30 所属栏目:百科 来源:网络整理
导读:是否有一种常见的方法来禁用flex 4中的spark tabbar组件的选项卡?使用mx tabnavigator组件,您只需禁用与选项卡对应的内容,然后也禁用选项卡.但使用spark tab bar组件执行此操作仅禁用内容而不禁用选项卡. 这是我的简单例子: mx:TabNavigator x="122" y="15
是否有一种常见的方法来禁用flex 4中的spark tabbar组件的选项卡?使用mx tabnavigator组件,您只需禁用与选项卡对应的内容,然后也禁用选项卡.但使用spark tab bar组件执行此操作仅禁用内容而不禁用选项卡.
这是我的简单例子: <mx:TabNavigator x="122" y="155" width="200" height="200"> <s:NavigatorContent label="Tab 1" width="100%" height="100%"> <s:Label text="Label1"/> </s:NavigatorContent> <s:NavigatorContent label="Tab 2" width="100%" height="100%" enabled="false"> <s:Label text="Label2"/> </s:NavigatorContent> <s:NavigatorContent label="Tab 3" width="100%" height="100%"> </s:NavigatorContent> </mx:TabNavigator> <s:TabBar x="368.7" y="100.35" dataProvider="{viewstack1}" /> <mx:ViewStack x="364" y="133" id="viewstack1" width="200" height="200"> <s:NavigatorContent label="Tab 1" width="100%" height="100%"> <s:Label text="Label1"/> </s:NavigatorContent> <s:NavigatorContent label="Tab 2" width="100%" height="100%" enabled="false"> <s:Label text="Label2"/> </s:NavigatorContent> <s:NavigatorContent label="Tab 3" width="100%" height="100%"> <s:Label text="Label3" x="1" y="0"/> </s:NavigatorContent> </mx:ViewStack> 很多, 解决方法
附录:
在我回到实际工作的两分钟后,我找到了一个使用皮肤的“优雅”解决方案. 如果将自定义skinClass应用于标签栏,则可以像预期/想要的那样绑定tab.enabled属性. <fx:Script> <![CDATA[ [Bindable] private var tab2IsReady:Boolean = false; private function checkCriteria():void{ tab2IsReady = someOtherThing.isFinished;//Boolean } ]]> </fx:Script> <s:TabBar id="theTabBar" dataProvider="{viewStack}" skinClass="skins.CustomTabBarSkin"/> <mx:ViewStack id="viewStack"> <s:NavigatorContent label="Tab index 0"> <!-- Your first tab's content --> </s:NavigatorContent> <s:NavigatorContent label="Tab index 1" enabled="{tab2IsReady}"> <!-- Your second tab's content --> </s:NavigatorContent> </mx:ViewStack> 当你输入“skinClass”时,使用auto complete生成(在FlashBuilder~4.5 ???中)自定义皮肤(命名为你想要的任何东西). <?xml version="1.0" encoding="utf-8"?> <!-- skins/CustomTabBarSkin.mxml ... Adobe's copyright & doc comments ... --> <s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:fb="http://ns.adobe.com/flashbuilder/2009" alpha.disabled="0.5"> <fx:Metadata> <![CDATA[ /** * @copy spark.skins.spark.ApplicationSkin#hostComponent */ [HostComponent("spark.components.TabBar")] ]]> </fx:Metadata> <!-- optional Script tag here --> <s:states> <s:State name="normal" /> <s:State name="disabled" /> </s:states> <!--- @copy spark.components.SkinnableDataContainer#dataGroup --> <s:DataGroup id="dataGroup" width="100%" height="100%"> <s:layout> <s:ButtonBarHorizontalLayout gap="-1"/> </s:layout> <s:itemRenderer> <fx:Component> <s:ButtonBarButton skinClass="spark.skins.spark.TabBarButtonSkin" /> </fx:Component> </s:itemRenderer> </s:DataGroup> </s:Skin> <!-- End skins/CustomTabBarSkin.mxml --> 更改: <fx:Component> <s:ButtonBarButton skinClass="spark.skins.spark.TabBarButtonSkin" /> </fx:Component> 至: <fx:Component> <s:ButtonBarButton skinClass="spark.skins.spark.TabBarButtonSkin" enabled="{data.enabled}" /> </fx:Component> 然后任何< s:NavigatorContent />在ViewStack中,其启用的属性设置或绑定将完全符合您的预期(在为true时启用,在false时为禁用). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |