Flex Spark List未更新,缺少项目

时间:2011-04-04 15:44:56

标签: flex list

我有一个带有几个项目(“文件夹”)的Spark.List,每个项目都包含一个文件的ArrayList,当我选择其中一个“文件夹”时,它应该在另一个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()....我有点迷失。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

为什么不使用直接数据绑定?

<s:List id="folders" dataProvider="{folderList}" />
<s:List id="files" dataProvider="{folders.selectedItem?folders.selectedItem.files:null}" />

对于您的问题,请尝试使用useVirtualLayoutupdateDisplayList() ...