是否可以定义一个属性来限制将出现在mx:List中的元素数量?我已经阅读过有关设置属性rowCount的内容,但我没有看到任何效果。 可以应用过滤器来实现这一目标吗?我的目的是避免从列表/数组集合中删除项目,而只是“隐藏”它们。可以这样做吗?
答案 0 :(得分:2)
通过使用Collection类(如ArrayCollection)并过滤数据,您可以在基于列表的类中“隐藏”项目,而无需修改基础源数据。
阅读这些docs on Collection filtering。
引用:
使用过滤器功能将集合中的数据视图限制为 源数据对象的子集。该功能必须单一 对象参数,对应于集合项,必须 返回一个布尔值,指定是否在该项中包含该项 视图。与排序一样,当您指定或更改过滤器功能时, 你必须调用集合上的refresh()方法来显示 过滤结果。限制字符串数组的集合视图 仅包含以M开头的字符串,例如,使用以下内容 过滤功能:
public function stateFilterFunc(item:Object):Boolean
{
return item >= "M" && item < "N";
}
答案 1 :(得分:1)
另一种选择是使用新的arraycollection并从大数组中获取有限的项目:
//get first 10 elements
myArrayCollection = new ArrayCollection( myBigArrayCollection.toArray().slice(0,9) );
如果你想使用寻呼机,你可以拿一个计数器来跟踪用户所在的页面,并从大数组中获取下一个元素。例如:
//this is just a (very) simple example
//page = integer (counter) for knowing which page the user is on
page = 0;
page_low = page*10;
page_high = page_low + 9;
myArrayCollection = new ArrayCollection( myBigArrayCollection.toArray().slice(page_low,page_high) );
(仍使用过滤器是一种更优雅的解决方案)