2012-03-21 97 views
1

更改個人標籤的風格我已經想出了一個辦法用下面的邏輯來改變標籤的風格在運行時:在柔性

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

但這裏「.MyTabs」類是適用於所有第一的標籤和最後一個標籤。根據getStyleDeclaration javadoc,它只接受「類選擇器」和「類型選擇器」而不是id選擇器。

如何在運行時更改單個標籤樣式?

回答

1

另一位用戶指出,我已經錯過了莫名其妙的方法,可以讓你訪問一個選項卡作爲BUTTOM和風格從那裏。

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

Tab extends Button,所以可能有一些東西你需要下面的解決方案,但對於基本的樣式,這應該是足夠的。


@塞巴斯蒂安的答案工程爲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); 

現在你可以隨意設置樣式,如塞巴斯蒂安的答案所示。

+0

好趕Sam。 @Himanshu Yadav你應該嘗試從以前的嘗試中學習,並在下次提問時指定更多信息。 – Sebastian 2012-03-21 13:52:16

+0

@Sam DeHaan非常感謝。你搖滾! – 2012-03-21 15:37:42

1

你可以通過調用TabBar.getChildAt(X)呼籲個人標籤的,其中U可以得到的setStyle。請檢查以下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); 
     } 
    } 
+0

感謝你!我現在可以調整個人標籤。 – 2012-03-21 15:38:44

2
(tabNavigator.getTabAt(index) as Button).setStyle("borderColor", 0xFF0000); 

這將解決問題,您可以將自己的顏色設置爲值參數。

+0

謝謝。你的解決方案是最簡單的。 – 2012-03-21 15:44:55

+0

不客氣 – Triode 2012-03-21 15:45:37

+0

@ rajesh.ashi這是解決方案不適用於選定的選項卡。 「選擇」選項卡是否以不同的方式處理? – 2012-03-26 18:41:57