Я пытаюсь создать вложенный список во Flex, который будет динамически изменять размер для отображения всех дочерних элементов при изменении поставщика данных.
Вот упрощенный пример, иллюстрирующий проблему:
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
public var outer:ArrayCollection = new ArrayCollection(["one", "two", "three"]);
[Bindable]
public var inner:ArrayCollection = new ArrayCollection([]);
public function addInnerListItems () : void {
inner.addItem("fish");
inner.addItem("mice");
inner.addItem("cats");
inner.addItem("bats");
}
]]>
</mx:Script>
<mx:Button label="Add inner list items" click="addInnerListItems()" />
<mx:List dataProvider="{outer}" rowCount="{outer.length}">
<mx:itemRenderer>
<mx:Component>
<mx:VBox>
<mx:Label text="{this.data}" />
<mx:List dataProvider="{outerDocument.inner}" rowCount="{outerDocument.inner.length}">
<mx:itemRenderer>
<mx:Component>
<mx:Label text="{this.data}" />
</mx:Component>
</mx:itemRenderer>
</mx:List>
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:List>
Размеры списка остаются неизменными при добавлении элементов.
Если я добавлю variableRowHeight="true"
к внешнему списку, то внутренние списки изменят размер правильно. Но сам внешний список остается в фиксированном размере.
Как можно автоматически изменить размеры обоих списков, чтобы отобразить все дочерние элементы?
Спасибо!
Stu