Flex 4 -如何在标签栏中启用/禁用某些标签



是否有一种方法来启用和禁用标签栏中的特定选项卡?我发现了一个使用ViewStack内的VBox的例子,但我使用的是NavigatorContent。有什么建议吗?

谢谢,div标记

如果我没记错的话,如果你用' enable="false"来禁用NavigatorContent,它也会禁用标签页。

另一种方法是通过向ButtonTabBar发送一个自定义对象列表,该列表具有'enabled'属性,然后创建一个自定义按钮项渲染器,该渲染器在数据更改时启用/禁用。

我想这就是你想要的,我用这个来禁用TabbedViewNavigatorApplication标签栏中的按钮。

    ButtonBarButton(this.tabbedNavigator.tabBar.dataGroup.getElementAt(0)).enabled = false;
    ButtonBarButton(this.tabbedNavigator.tabBar.dataGroup.getElementAt(1)).enabled = true;

我在Adobe论坛上找到了一个解决方案-

我创建了一个新的TabBar皮肤(命名为"TabBarSkinWithDisabledTabs")。在其中,我更改了

<s:ButtonBarButton skinClass="spark.skins.spark.TabBarButtonSkin" />

<s:ButtonBarButton skinClass="spark.skins.spark.TabBarButtonSkin" enabled="{data.enabled}" />

它适合我(Flex 4.5)。

主要代码:

    <s:TabBar id="theTabBar" change="theTabBar_changeHandler(event)" cornerRadius="4"
          dataProvider="{vwStack}" skinClass="skins.TabBarWithDisabledTab"/>
<mx:ViewStack id="vwStack" width="100%" height="100%">
    <s:NavigatorContent width="100%" height="100%" label="tab1">
        <!-- irrelevant content here -->
    </s:NavigatorContent>
    <s:NavigatorContent width="100%" height="100%" label="tab2">
        <!-- irrelevant content here -->
    </s:NavigatorContent>
    <s:NavigatorContent width="100%" height="100%" label="tab3" enabled="false">
        <!-- irrelevant content here -->
    </s:NavigatorContent>
</mx:ViewStack>

我有togglebuttonbar (flex3),我想做同样的事情,你要求

ButtonBarButton (togbar.getChildAt (0)) .enabled= true;.enabled ButtonBarButton (togbar.getChildAt (1))= true;.enabled ButtonBarButton (togbar.getChildAt (2))= false;

togbar是togglebuttonbar的"id",这样你就可以对按钮做任何你想做的事情。我希望这对你有帮助。

Ankur

最新更新