How to set a Spark List height to the height of its content?
Tried this:
var lastRo开发者_StackOverflow中文版w:IVisualElement =
myList.dataGroup.getElementAt(myList.dataGroup.numElements - 1);
myList.height = lastRow.y + lastRow.height;
It works in case of a single item, but lastRow is null in case of more items.
In mxml you can do it like so:
<s:List width="100%">
<s:layout>
<s:VerticalLayout useVirtualLayout="false" requestedMinRowCount="1"/>
</s:layout>
</s:List>
You set the requestedMinRowCount or the requestedRowCount in the layout inside the List. It got me before, too. Hope that helps.
For TileList I did it like this:
<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>
try this layout - for regular list
<s:layout>
<s:VerticalLayout horizontalAlign="contentJustify"
gap="0"
verticalAlign="middle"
variableRowHeight="false"/>
</s:layout>
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);
}
}
Or you can extend your TileLayout :)
Easiest way to do this
height="{list.dataGroup.contentHeight}"
精彩评论