【问题标题】:Retrieve specific index from arraycollection从数组集合中检索特定索引
【发布时间】:2013-04-09 10:44:08
【问题描述】:

我似乎无法解决这个问题。我想显示一个以数组集合中特定位置开头的列表,而不更改数组。目标是拥有一组用户可以滑动浏览的全屏图像(就像在电子书中一样),对于章节索引,我想从 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>

【问题讨论】:

    标签: arrays apache-flex flexbuilder


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      一切都从您的数据开始。数据本身将需要包含有关章节偏移的信息。通常,您将存储偏移搜索点的集合。

      例如:

      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 项)。

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

      【讨论】:

      • 感谢您的洞察力,但我的问题是我似乎无法设置索引。我已经使用 selectedIndex 进行了尝试,但是当我运行该应用程序时,它似乎忽略了它。你能指出我正确的方向吗(也许有一些示例代码)?
      • selectedIndex 会起作用,但它并没有像您认为的那样具有约束力。如果索引在实际视口内,它只会处理选择。为此,您需要使用 ensureIndexIsVisible(index:int):void
      【解决方案3】:

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

      【讨论】:

      • 如果我没记错的话,你的方法仍然会自动给特定图像的索引为 0,所以如果一个按钮将某人发送到书的最后一页,所有其他页面都会紧随其后那个。
      • 我开始认为 yoyr 方法是正确的,但我似乎无法让它发挥作用。你能指点我一些示例代码吗?那将不胜感激。
      【解决方案4】:

      Spark List 上的ensureIndexIsVisible 方法可以工作吗?

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

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

      【讨论】:

        猜你喜欢
        • 2017-03-14
        • 1970-01-01
        • 1970-01-01
        • 2018-12-04
        • 2016-03-27
        • 2017-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多