2011-03-11 44 views
1

我創建Label組件這樣如何使Flex Spark標籤自動調整大小?

var label:Label = new Label(); 
label.text = "some text"; 
label.styleName = "someStyle"; 
addChild(label); 

但它留下看不見的,直到我明確設置寬度和高度。
我怎樣才能使標籤根據它的文本自動調整大小?

+0

調整大小如何?你想把它包裹到第二行嗎?把所有東西放在一條線上? – 2011-03-11 20:02:52

+0

比方說一條線 – GetUsername 2011-03-11 20:07:33

回答

4

我已經找到了答案,我的問題here
解決方法是調用measureText()函數標籤

var lineMetrics:TextLineMetrics = label.measureText(label.text); 
label.width = lineMetrics.width; 
label.height = lineMetrics.height; 
+0

這不適用於Spark組件... – Dan 2011-08-07 13:45:47

+0

適用於我的Spark標籤。 – Mario 2013-05-09 08:39:18

1

你應該能夠使用label.percentWidth = 100;以允許標籤自動與文本增長。如果您希望將其保留在一條線上,則還需要設置maxDisplayedLines = 1;屬性。

您可能還需要使用addElement(label),而不是addChild(label)

+0

這是不行的,標籤仍然是不可見的。 除此之外,如何將組件寬度設置爲100%使其自動調整大小? – GetUsername 2011-03-12 06:00:47

+0

它不會自動調整它的大小,但會將標籤的寬度設置爲其容器的寬度。如果我們可以看到更多的代碼,它可能會有所幫助。將標籤添加到容器後,您可能還想嘗試調用'label.validateNow()'。 – 2011-03-12 06:09:56

3

我也注意到上面的回答似乎不工作與火花組件。這對我來說確實有效。

label.width = label.measuredWidth; label.height = label.measuredHeight;

相關問題