代码之家  ›  专栏  ›  技术社区  ›  alexey

flex 4:将spark列表高度设置为其内容高度

  •  13
  • alexey  · 技术社区  · 15 年前

    如何设置 星火表 高度到内容的高度?

    尝试过:

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

    它对单个项目有效,但是 最后一行 如果有更多项,则为空。

    5 回复  |  直到 13 年前
        1
  •  25
  •   Marty    14 年前

    在mxml中,您可以这样做:

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

    在布局中设置requestedminrowcount或requestedrowcount 在列表中 . 我以前也有过。希望能有所帮助。

        2
  •  3
  •   Stephen Horvath    14 年前

    对于蒂莱斯特,我是这样做的:

    <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>
    
        3
  •  3
  •   Amalia    13 年前

    尝试此布局-用于常规列表

    <s:layout>
    <s:VerticalLayout horizontalAlign="contentJustify" 
      gap="0"
      verticalAlign="middle" 
      variableRowHeight="false"/>
    </s:layout>
    
        4
  •  1
  •   Katya    13 年前
    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);
        }
    
    }
    

    或者您可以延长您的tillelayout:)

        5
  •  1
  •   Tamás    13 年前

    最简单的方法

    height="{list.dataGroup.contentHeight}"