2009-11-16 34 views
3

有沒有一個很好的地方有一個關於如何管理Flex佈局的東西的概述?Flex佈局概述 - 獲取組件首選大小的任何方法?

我想在Flex中創建一些用戶可調整大小的「窗口」,但我在正確獲取內容的佈局計算時遇到了一些麻煩。

現在我只是想了解Flex如何計算其佈局,但我還沒有找到任何好的概述文檔。

例如,只是在width值看主要有以下幾種:

minWidth 
maxWidth 
width 

explicitMinWidth 
explicitMaxWidth 
explicitWidth 

measuredMinWidth 
measuredMaxWidth 
measuredWidth 

height同一組。

這些都是什麼意思?每個人如何使用?有什麼方法可以用這些來計算組件的一些首選大小(如java中的getPreferredSize())?

對特定寬度/高度問題的解答將會非常有幫助,但是如果有人知道一些很好的文檔,這些文檔會覆蓋Flex的佈局,通常會很棒。

回答

0

查看組件的measure()函數。 (docs) 如果您要更改其默認大小調整行爲,則這是覆蓋的功能。

編輯:請注意,每個組件通常會覆蓋UIComponent的measure()函數,因此沒有一個地方可以理解flex的佈局。 UIComponent給你一個啓動器,顯示引擎如何粗略地工作,但每個組件都有自己的猜測預期大小的方法。它在很多情況下都表現出色,但如果這種魔法對你不起作用,那麼進入它並不容易。

+0

但是measure()需要能夠指出子組件想要的大小。而measure()是受保護的,所以我不能在其他組件上調用它來讓它們進行計算。我真的在尋找一些關於整個系統(度量,各種大小的屬性,invalidateSize等)如何連接在一起並且預計可以工作的很好的概述文檔。 – Herms 2009-11-17 17:01:38

+0

對不起,我真的打算看看這個函數,即源碼,畢竟它是開源的。我知道,這不是真正的概述,但是這是我/將在何時/何時需要實現我自己的佈局的時候看的地方。到現在爲止,我已經成功地拖延了這個棘手的copmlex,但我知道這一天也會到來,我也必須這樣做。而來源是,你可以看到它是如何工作的。 – 2009-11-18 08:28:18

+0

我確實看過源代碼。它給了我一些想法,但我仍然在猜測很多東西。 – Herms 2009-11-23 15:03:25

0

我剛剛閱讀這篇文章,其中涵蓋了使用Spark以非常清晰的語言進行佈局。它具體包括getPreferedWidth()heighthttp://www.adobe.com/devnet/flex/articles/spark_layouts.html

作者的博客也很有用。

+0

不幸的是,這似乎只是Flex 4,而我正在3中工作。 – Herms 2009-11-23 15:04:23

1

Programming Flex 3」的第6章包含了我發現非常有用的Flex佈局容器的詳細說明。

+0

這聽起來就像我在找的東西。感謝您提供Safari鏈接,這爲我節省了很多麻煩。 :) – Herms 2009-11-23 15:30:31