我有一个Spark.List有几个项目(“文件夹”),每个项目都包含一个ArrayList的文件,当我选择其中一个“文件夹”时,它应该显示“文件列表“在另一个Spark.List上。它现在的工作做的:Flex Spark List不更新,丢失项目
private function onFolderChange (event:*):void {
var list:List = event.currentTarget as List;
if (list.selectedIndex != -1) {
currentFolder = null;
currentFolder = list.selectedItem;
fileListDataProvider = currentFolder.files;
fileList.selectedIndex = -1;
}
}
的问题是,当“文件”缩略图覆盖更多的则列表视口,并通过从“文件夹”改变有时需要滚动到另一个“文件夹”的文件列表丢失文件。例如,假设我有一个“文件夹1”,其中包含30个“文件”(10个可见和20个隐藏的滚动条),“文件夹2”有5个“文件”(全部可见),如果我切换在“文件夹”之间来回显示有时它会显示一切正确,有时它会在没有需要时在“文件夹2”上显示滚动,有时它只会在“文件夹1”中显示几个(5或10)“文件” “即使它有30个。
fileList有问题,它更新它的项目但没有真正更新。我试着将itemRenderer设置为null并重新应用,将dataProvider设置为null并重新应用,然后执行validateNow()....我有点迷路了。
有什么想法?
对不起,我并没有完全解释,我试图让这个例子更简单,这样会更容易理解但在我的情况下,我不能使用直接绑定,因为我实际上有2个不同的文件夹列表,所以每个都有一个更改处理程序,取消选择另一个,并将数据提供程序应用于文件列表。 – 2011-04-04 16:21:32
好的:)我的答案的第二部分是否改变了事情? – Kodiak 2011-04-04 16:28:05
我尝试过useVirtualLayout,但没有运气,至于updateDisplayList,它似乎没有该方法。我想我可能已经通过向fileList.updateComplete事件添加侦听器并在处理器中将itemRenderer设置为null然后重新应用itemRenderer来修复它,似乎当有很多文件时,我必须等待此事件能够强制渲染。感谢您的帮助。 – 2011-04-04 16:59:35