【问题标题】:Changing individual tab style in flex更改 flex 中的单个选项卡样式
【发布时间】:2012-03-21 13:24:38
【问题描述】:

我已经找到了一种在运行时使用以下逻辑更改选项卡样式的方法:

var cssStyle:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".MyTabs");
  cssStyle.setStyle("borderColor", "red");

但这里的“.MyTabs”类适用于第一个和最后一个选项卡之间的所有选项卡。根据 getStyleDeclaration javadoc,它只接受“类选择器”和“类型选择器”而不接受 id 选择器。

如何在运行时更改单个选项卡样式?

【问题讨论】:

    标签: apache-flex flex3 flash-builder


    【解决方案1】:
    (tabNavigator.getTabAt(index) as Button).setStyle("borderColor", 0xFF0000);
    

    这样就可以解决问题了,你可以设置自己的颜色作为值参数。

    【讨论】:

    • @rajesh.ashi 此解决方案不适用于选定的选项卡。选择的选项卡是否以不同的方式处理?
    【解决方案2】:

    另一位用户指出了一种我不知何故错过的方法,它允许您将选项卡作为按钮访问并从那里设置样式。

    var t:Button = theTabs.getTabAt(index);
    

    Tab 扩展了 Button,因此您可能需要以下解决方案来处理某些事情,但对于基本样式而言,这应该足够了。


    @Sebastian 的答案适用于 TabBar,我知道你没有,因为这是你问的第三个相同的问题。为了在 TabNavigator 上设置选项卡的样式,您需要访问内部的 TabBar。

    //this import may not auto-complete for you
    import mx.controls.tabBarClasses.Tab;
    
    var t:Tab = theTabs.mx_internal::getTabBar().getChildAt(index);
    

    现在您可以随意设置样式,如 Sebastian 的回答所示。

    【讨论】:

    • 很好地抓住了山姆。 @Himanshu Yadav,您应该尝试从以前的尝试中学习,并在下次提问时指定更多信息。
    【解决方案3】:

    您可以在各个选项卡上调用 setStyle,您可以通过调用 TabBar.getChildAt(x) 来获得。检查以下link,它说明了如何实现您尝试执行的任务。你也可以看看这个link

     private function tabBar_creationComplete():void {
            var colorArr:Array = ["red", "haloOrange", "yellow", "haloGreen", "haloBlue"];
            var color:String;
            var tab:Tab;
            var idx:uint;
            var len:uint = tabBar.dataProvider.length;
    
            for (idx = 0; idx < len; idx++) {
                var i:int = idx % colorArr.length;
                color = colorArr[i];
                tab = Tab(tabBar.getChildAt(idx));
                tab.setStyle("fillColors", [color, "white"]);
                tab.setStyle("fillAlphas", [1.0, 1.0]);
                tab.setStyle("backgroundColor", color);
            }
        }
    

    【讨论】:

    • 谢谢你!我现在可以调整单个标签了。
    猜你喜欢
    • 1970-01-01
    • 2015-09-18
    • 1970-01-01
    • 2018-12-20
    • 2011-01-28
    • 1970-01-01
    • 2020-01-18
    • 2017-04-18
    • 1970-01-01
    相关资源
    最近更新 更多