0

我似乎无法解决这个问题。我想显示一个从 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>

4

4 回答 4

1

AFAIK 没有办法做到这一点。您必须对 dataprovider 进行排序,使其与您希望显示项目的顺序相匹配。

如果您不想修改原始集合,您可以创建一个ListCollectionView,将原始集合传递给构造函数并为 ListCollectionView 添加排序。然后,您可以将集合视图指定为列表的数据提供者。

于 2013-04-09T11:04:55.120 回答
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 项)。

您的页面对象可以是单个图像,也可以是每页图像的集合。无论哪种情况,从数据的角度来看,您真正构建的是分层集合。

于 2013-04-09T15:09:35.443 回答
0

如果您的目标是首先显示特定图像,为什么不为列表本身设置 selectedIndex。我的意思是在 dataprovider 中给你的数据对象一些 id 并将索引传递给列表。希望这有帮助,如果这不是预期的,请告诉我

于 2013-04-09T12:20:26.430 回答
0

ensureIndexIsVisibleSpark List 上的方法可能有效吗?

注意:您可能需要单击以下 html 页面顶部的“产品”复选框才能实际看到此方法。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/components/List.html#ensureIndexIsVisible()

于 2013-04-10T20:22:09.290 回答