Flex 4: установка высоты Spark List для высоты содержимого - PullRequest
13 голосов
/ 01 апреля 2010

Как установить Spark List высоту до высоты его содержимого?

Попробовал это:

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

Это работает в случае одного элемента, но lastRow равно нулю в случае большего количества элементов.

Ответы [ 5 ]

25 голосов
/ 30 сентября 2010

В mxml вы можете сделать это так:

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

Вы устанавливаете запрашиваемое значение MinRowCount или запрашиваемое значение RowCount в макете внутри списка . Это тоже до меня дошло. Надеюсь, это поможет.

4 голосов
/ 30 августа 2011

Для 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>
3 голосов
/ 22 ноября 2011

попробуйте этот макет - для обычного списка

<s:layout>
<s:VerticalLayout horizontalAlign="contentJustify" 
  gap="0"
  verticalAlign="middle" 
  variableRowHeight="false"/>
</s:layout>
1 голос
/ 04 января 2012

Самый простой способ сделать это

height="{list.dataGroup.contentHeight}"
1 голос
/ 04 ноября 2011
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:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...