Actionscript 3 列表组件滚动条保持视图的完整高度

Actionscript 3 列表组件滚动条保持视图的完整高度,actionscript-3,apache-flex,list,scrollbar,Actionscript 3,Apache Flex,List,Scrollbar,我正在开发一个Flex移动应用程序,并使用actionscript组件中定义的s:List和MXML渲染器 在我看来: var movieList:List = new List(); private function created(event:FlexEvent):void { movieList.itemRenderer = new ClassFactory(MovieRenderer); movieList.dataProvider = new ArrayList();

我正在开发一个Flex移动应用程序,并使用actionscript组件中定义的s:List和MXML渲染器

在我看来:

var movieList:List = new List();
private function created(event:FlexEvent):void
{
   movieList.itemRenderer = new ClassFactory(MovieRenderer);
   movieList.dataProvider = new ArrayList();
   movieList.useVirtualLayout = false;
   movieList.pageScrollingEnabled = true; // if this is omitted scroll bar is invisible
   this.addElement(movieList);
}
返回HTTPService调用后:

private function movieDataReady(event:events.ExternalDataEvent):void{
     movieList.dataProvider.addItem(event.result);
}
每个event.result项都是一个自定义对象

问题在于,滚动条似乎是列表的全部高度,而不是视图/屏幕。这将使它变得无用,因为您无法滚动。如果您尝试,它会滚动,但会在您释放后立即返回。滚动条的高度似乎与所有列表项的组合高度差不多


我以前让它工作过,但我做了一些更改,无法找出这次我遗漏了什么。

你所解释的听起来像是预期的行为。也许你需要在视图中添加一个滚动条?或者重新调整列表的大小,使其大小不会超出可视区域。您是否尝试将列表的percentWidth和percentHeight设置为100?此外,我强烈建议阅读Flex组件生命周期;在createChildren()方法之外创建子对象是不常见的。percentWidth/Height无法解决此问题。“不寻常”是指逐个添加项目吗?如果是这样,即使我将dataProvider设置为ArrayList(“内部的所有项”),也会发生相同的问题;我喜欢每个项目的原因是因为它更快(项目一加载就显示出来。至于在视图中添加一个滚动条,我会不会有两个滚动条,一个用于列表,一个用于视图?似乎列表应该能够处理它…我的意思是添加子元素(元素)是不寻常的到Flex组件生命周期之外的组件。给定您的代码段;不知道何时调用created();但我假设它不是从createChildren()中调用的。创建视图时调用created()。使用.dataPrvider.addItem(项)有何不利之处;vs.dataProvider=items;?视图是何时创建的?您的意思是将其作为构造函数的一部分调用?还是指其他内容?请在此处阅读有关Flex组件生命周期的内容:。我希望调用dataProvider.addItem()将导致列表使用每个添加的项重新绘制。而dataProvider=items将导致列表仅重新绘制一次,无论添加(或删除或更改)了多少项。如果只是更新单个项,则addItem可以;但我不会将其用于初始dataProvider集