我似乎无法解决这个问题。我想显示一个以arraycollection中的特定位置开头的列表,而不更改数组。目标是拥有一组用户可以轻扫的全屏图像(如在电子书中),对于章节索引,我想从arraycollection中的特定索引编号开始。
是否有一种简单的方法可以告诉Itemrenderer从arraycollection中的特定索引号开始。
我的代码从索引0开始:
<s:List id="pagedList"
width="100%" height="100%"
verticalScrollPolicy="off" horizontalScrollPolicy="on"
pageScrollingEnabled="true">
<s:layout>
<s:TileLayout orientation="rows" requestedRowCount="1"
columnWidth="{pagedList.width}" rowHeight="{pagedList.height}"
verticalGap="0" horizontalGap="0"/>
</s:layout>
<s:ArrayCollection id="contentData">
<s:Image source="assets/cover.jpg"/>
<s:Image source="assets/introduction.jpg"/>
<s:Image source="assets/H1/40_days.jpg"/>
</s:ArrayCollection>
<s:itemRenderer>
<fx:Component>
<s:ItemRenderer>
<s:Group>
<s:Image source="{data.source}" horizontalAlign="center"/>
</s:Group>
</s:ItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:List>
答案 0 :(得分:1)
AFAIK没有办法做到这一点。您必须对数据提供者进行排序,使其与您要显示项目的顺序相匹配。
如果您不想修改原始集合,可以创建ListCollectionView,将原始集合传递给构造函数,并向ListCollectionView添加排序。然后,您可以将集合视图指定为列表的数据提供者。
答案 1 :(得分:1)
这一切都始于您的数据。数据本身需要包含有关章节偏移的信息。通常,您将存储偏移搜索点的集合。
例如:
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Chapters: 1 2 3 4 5
章节对象将包含对从哪个页面开始及其总长度的引用。一组搜索按钮将遍历章节集合,告诉您的列表从适当的偏移量开始(即第2章,从索引4开始,长度为4项)。
您的页面对象可以是单个图像,也可以是每页图像集合。在任何一种情况下,从数据的角度来看,您真正构建的是分层集合。
答案 2 :(得分:0)
如果您的目标是首先显示特定图像,为什么不为List本身设置selectedIndex。我的意思是在dataprovider中为你的数据对象提供一些id并将索引传递给列表。 希望这个帮助,如果这不是预期的话,请告诉我
答案 3 :(得分:0)
Spark List上的ensureIndexIsVisible
方法可能有效吗?
注意:您可能需要点击以下html页面顶部的“产品”复选框才能真正看到此方法。