У меня есть компонент списка с макетом листов (ориентированным на строки) в группе, которая находится в главном приложении.
Я хочу, чтобы список располагался по центру по вертикали, когда не хватает элементов для заполнениявысота окна приложения, поэтому verticalCenter = "0".
Однако, когда на экране больше элементов, чем может поместиться по вертикали, список расширяется за пределы высоты окна приложения и полоса прокрутки не срабатывает.
Я могу исправить это, если установить высоту списка на 100%, но это означает, что он не центрируется по вертикали, когда содержит меньше элементов.
Идеальным решением было бы maxHeight = "100%", ноКонечно, maxHeight не работает с процентами.Как мне добиться такого поведения?
Спасибо,
Тим
Редактировать: Пожалуйста, смотрите код ниже:
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
applicationComplete="applicationCompleteHandler(event)"
width="800" height="600"
showStatusBar="false">
<fx:Script>
<![CDATA[
import mx.collections.ArrayList;
import mx.events.FlexEvent;
protected function applicationCompleteHandler(event:FlexEvent):void
{
var arrayList:ArrayList = new ArrayList;
for (var i:int = 1; i <= 50; i ++)
{
arrayList.addItem(String(i));
}
list.dataProvider = arrayList;
}
]]>
</fx:Script>
<s:List id="list"
itemRenderer="itemRenderer"
useVirtualLayout="false"
horizontalCenter="0" verticalCenter="0"
borderVisible="false">
<s:layout>
<s:TileLayout orientation="rows"
requestedColumnCount="4"
columnWidth="150" rowHeight="150"/>
</s:layout>
</s:List>
</s:WindowedApplication>
Это мой рендер:
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true">
<s:Rect width="100%" height="100%">
<s:stroke>
<s:SolidColorStroke color="0"/>
</s:stroke>
</s:Rect>
<s:Label text="{data}"
horizontalCenter="0" verticalCenter="0" fontSize="50"/>
</s:ItemRenderer>
Если цикл for изменяется только на 10 итераций, список центрируется по центру экрана вертикально.В противном случае список расширяется за пределы экрана, центрируется по вертикали и полоса прокрутки не появляется.
Использование clipAndEnableScrolling не имеет никакого значения.Я также попытался поместить список в группу со 100% шириной и высотой, но я получаю более или менее такое же поведение, за исключением того, что список находится наверху, когда он выше контейнера.