一旦我設置了柔性標籤上的width
或percentWidth
屬性,是否有辦法將寬度重置爲其默認值(即文本寬度加上填充)?設置明確的寬度後,將柔性標籤寬度重置爲「自動」?
我使用標籤作爲渲染器。在某些情況下,我希望它自動調整文本大小,在其他情況下,我希望它是容器的百分比寬度。很明顯,我可以使用兩個單獨的標籤,每個標籤都用於上述情況,但我很好奇是否可以將標籤重置爲默認行爲。
一旦我設置了柔性標籤上的width
或percentWidth
屬性,是否有辦法將寬度重置爲其默認值(即文本寬度加上填充)?設置明確的寬度後,將柔性標籤寬度重置爲「自動」?
我使用標籤作爲渲染器。在某些情況下,我希望它自動調整文本大小,在其他情況下,我希望它是容器的百分比寬度。很明顯,我可以使用兩個單獨的標籤,每個標籤都用於上述情況,但我很好奇是否可以將標籤重置爲默認行爲。
label.width = NaN;
//not sure if the following lines are required
label.invalidateSize();
label.width = label.measuredWidth;
當設置的部件的特定的高度和寬度,Flex不會調用measure()方法,即使你顯式調用invalidateSize()方法。也就是說,如果組件的explicitWidth屬性或explicitHeight屬性爲NaN,Flex將僅調用measure()方法。
將寬度設置爲未定義:
yourLabelId.width =未定義;
由於width未被鍵入爲*,所以undefined實際上會被轉換爲null。當你的新高度傳遞到它的存儲位置時,它可能最終成爲NaN(我相信explicitWidth)。 – joshtynjala 2009-10-12 19:08:23
將我的寬度設置爲undefined似乎可行,但我同意NaN更乾淨(我正在慢慢學習ActionScript類型系統)。如果這個答案被編輯(s/undefined/NaN/g),我會讓它「接受」,因爲它讓我快速運行。 – 2009-10-13 15:49:16
作爲一個附註,值得一提的是,如果我設置了percentWidth,那麼將寬度設置爲NaN不起作用。我最初修改的屬性必須設置爲NaN以將標籤重置爲其默認(測量)寬度。這可能很明顯,但可能會讓人困惑。 – 2009-10-13 15:57:36
這爲我工作,不需要invalidateSize調用或分配measuredWidth。我曾看過這篇文檔的引用,但我還沒有(也可能沒有)理解寬度和/或percentWidth屬性和explicitWidth之間的關係。 – 2009-10-13 15:53:28
我的理解是'explicitWidth'是組件可見部分的寬度。如果實際寬度大於此值,則會出現滾動條。它是組件明確指定的寬度(由程序員)。如果設置寬度,則將相同的值分配給explicitWidth屬性,並且如果指定percentWidth,則將計算的寬度(基於父級的大小)用作explicitWidth。 – Amarghosh 2009-10-14 04:44:18