我有一个带有项目渲染器的spark列表。当我单击一个元素时,渲染器会变大,当我再次单击时,它会再次变小。 问题是列表不会随内容调整大小。我试图从渲染器发送一个事件,以这种方式传递其内容大小和调整大小列表:
private function refreshList(event:ResultEvent):void
{
var size:Number = (event.result as Number) + 6;
if (size >= mylist.width)
{
consultingNumber++;
mylist.width = size;
}
else
{
consultingNumber--;
if (consultingNumber == 0)
mylist.width = size;
}
mylist.invalidateDisplayList();
}
consultingNumber是“已打开”渲染器的数量。 它工作得很好,但是当所有渲染器都“关闭”时,会出现一个水平滚动条。 跟踪列表的宽度结果是正确的,但即使我将horizontalScrollPolicy设置为off,滚动条仍然存在。
答案 0 :(得分:0)
尝试调用myList.invalidateSize()而不是myList.invalidateDisplayList();
以下是有关flex组件生命周期的更多信息,它可以让您走上正确的轨道:
http://weblog.mrinalwadhwa.com/2009/06/21/flex-4-component-lifecycle/
http://www.slideshare.net/rjowen/adobe-flex-component-lifecycle-presentation
干杯