2009-07-23 79 views
0

我正在使用自定義的itemrenderer來顯示照片列表,並且需要知道如何控制寬度。目前,它這樣做:在Flex中限制自定義列表itemrenderer的寬度

Why so wide? http://tdwright.co.uk/phpplayground/test_tom/img/flex_problem1.png

其中,因爲我相信你會同意,是眼睛bleedingly難看。

列表創建這樣的:

<mx:Panel width="100%" height="100%" layout="absolute" title="Photos"> 
    <mx:List x="0" y="0" width="100%" height="100%" id="photoList" dataProvider="{photos}" itemRenderer="thumbnails" rowHeight="100"/> 
</mx:Panel> 

,將itemRenderer組件看起來是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"> 
    <mx:Image source="{data.src}" id="image" scaleContent="true" toolTip="{data.caption}" height="100%" horizontalAlign="center"/> 
</mx:VBox> 

我試着將寬度= 「100%」,在一大堆的地方,但沒有成功。如果有人知道我可以如何控制這一點,我會非常感激。

+0

這個問題有超過2k的意見,是超過2歲,但仍然沒有答案。它變得無關緊要了嗎? (我放棄使用Flex。)我應該給它一個賞金嗎? – 2011-10-03 12:28:15

回答

1

如果設置的itemRenderer verticalScrollPolicy =「關閉」 horizo​​ntalScrollPolicy =裏面這些屬性「關」的酒吧都消失

我不知道爲什麼他們選擇了可怕的「關」,而不是假

+0

這隱藏了酒吧,但不限制寬度,這幾乎使情況變得更糟。儘管感謝您的回答。 – 2009-07-23 10:03:30

0

這裏有一些觀察,基於類似痛苦經驗的mi妄症。 (注意:我還沒有構建測試應用程序來確認此特定情況下的所有內容)

假設您想讓列表根據其包含的itemRenderer元素的大小來調整其寬度,那些itemRenderer元素需要提供寬度信息。以這種方式使用帶有滾動條的VBox意味着VBox將嘗試在內容大小(圖像)和父級大小之間進行「仲裁」。所以是的,首先要做的就是關閉VBox上的滾動條,假設你不能完全擺脫VBox。 (我猜你想要VBox,這樣你就可以在圖像下放一個標題或下一個作爲下一步)

該列表,因爲你指定的大小爲其的100%,面板,這本身就是其母公司的100%。不要將這些元素的大小設置爲「自上而下」,請考慮讓它們的寬度未指定,以便Flex將自下而上計算所需的寬度。在列表上使用maxWidth或面板限制它們的大小,如果您需要將它們放在相對於其同級的位置。

另一個需要了解的重要的事情是「minHeight = 0」技巧。事實證明,當minHeight或minWidth被設置爲默認NaN以外的其他類型時,Flex使用的大小調整算法的行爲會有所不同。將其設置爲0在許多情況下非常有用。在VBox和/或列表上嘗試minWidth = 0。

0

除關閉滾動策略外,將左右設置爲0.應將寬度固定爲父級的寬度。

相關問題