2010-04-01 128 views
13

如何設置Spark List高度到其內容的高度?Flex 4:將Spark List高度設置爲其內容高度

嘗試這樣:

var lastRow:IVisualElement = 
       myList.dataGroup.getElementAt(myList.dataGroup.numElements - 1); 
myList.height = lastRow.y + lastRow.height; 

它可以在一個單一的項目的情況下,但LASTROW是在多個項目的情況下空。

回答

25

在MXML中,您可以像這樣:

<s:List width="100%"> 
    <s:layout> 
     <s:VerticalLayout useVirtualLayout="false" requestedMinRowCount="1"/> 
    </s:layout> 
</s:List> 

您設置requestedMinRowCount個或requestedRowCount佈局列表內。它也吸引了我。希望有所幫助。

+1

我試圖讓這個與TileLayout一起工作,但沒有爲TileLayout請求最小數量。我想知道如何在使用TileLayout時爲列表動態設置高度,以便列表只佔用需要顯示行的空間? – 2011-08-30 18:03:56

3

對於TileList中我做了這樣的:

<s:List width="100%" height="{(tilelayout.rowCount * tilelayout.rowHeight) + ((tilelayout.rowCount - 1) * tilelayout.verticalGap)}"> 
    <s:layout> 
     <s:TileLayout id="tilelayout" rowHeight="190" columnWidth="130" horizontalGap="5" verticalGap="10" /> 
    </s:layout> 
</s:List> 
1
public class MyTileLayout extends TileLayout 
{ 

    override public function updateDisplayList(w:Number, h:Number):void 
    { 
     super.updateDisplayList(w,h); 

     target.height = rowCount*rowHeight + verticalGap*(rowCount - 1); 
    } 

} 

,也可以擴展你的TileLayout :)

3

試試這個佈局 - 定期列表

<s:layout> 
<s:VerticalLayout horizontalAlign="contentJustify" 
    gap="0" 
    verticalAlign="middle" 
    variableRowHeight="false"/> 
</s:layout> 
0

最簡單的方法要做到這一點

height="{list.dataGroup.contentHeight}" 
相關問題