【问题标题】:Flex 4 - How to Enable/Disable certain tabs in tabBarFlex 4 - 如何启用/禁用 tabBar 中的某些选项卡
【发布时间】:2011-08-08 20:37:27
【问题描述】:

有没有办法启用和禁用 tabBar 中的特定选项卡?我在 ViewStack 中找到了一个使用 VBox 的示例,但我使用的是 NavigatorContent。有什么建议吗?

谢谢, 标记

【问题讨论】:

  • 你能指出你已经找到的例子吗?还有一些代码示例会很好。听起来像您将 MX 和 Spark 混合,但我不确定如何以及它对回答问题有帮助,也可能有一个使用 spark ButtonBar 的更简单的解决方案(我实际上只是在玩弄这个瞬间和决定弹出打开堆栈溢出)

标签: apache-flex flex4 tabbar


【解决方案1】:

如果我没记错的话,如果您使用 `enable="false" 禁用 NavigatorContent,它也会禁用该选项卡。

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

【讨论】:

  • 在 Flex 4 中它只禁用 NavigationContent 部分,而不是 tabBar 的选项卡。
  • 哦,对了,那是 TabNavigator,而不是带有 ButtonTabBar 的 ViewStack。我的错。然后我会使用项目渲染器方法。您将获得的数据应该是实际的 NavigatorContent。只需要将数据的 enabled 属性绑定到项目渲染器的 enabled 属性即可。
【解决方案2】:

我认为这就是您要查找的内容,我使用它来禁用 TabbedViewNavigatorApplication TabBar 中的按钮。

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

【讨论】:

    【解决方案3】:

    我在the Adobe Forums 找到了解决方案 -

    我创建了一个新的 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>
    

    【讨论】:

      【解决方案4】:

      我有切换按钮栏(flex3),我想做你要求的同样的事情

      ButtonBarButton(togbar.getChildAt(0)).enabled =真; ButtonBarButton(togbar.getChildAt(1)).enabled =真; ButtonBarButton(togbar.getChildAt(2)).enabled =假;

      togbar 是切换按钮栏的“id”,所以通过这种方式你可以做任何你想用按钮做的事情, 我希望这会有所帮助

      安库尔

      【讨论】:

      • 这里 ma togglebuttonbar 有三个按钮,
      • ryt,n e 方式,有一个 gr8 时间的兄弟
      猜你喜欢
      • 1970-01-01
      • 2018-02-11
      • 2021-12-12
      • 2012-08-28
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多