2

私は持っている:

  • Numbers の ArrayCollection。
  • 上記の ArrayCollection をデータプロバイダーとして使用するリスト、および virtualLayout=true;
  • 次のラベルを表示するカスタム ItemRenderer: a) 数値 b) 数値および表示される最大数値に応じた y 位置

言い換えれば、AC に 10 個の数字があり、画面に 5 個しか表示されない場合、それら 5 個の y 位置は、それらの 5 個の最大値の値に依存します。ユーザーがスクロールすると、もちろんこれらの 5 個の要素変更すると、アイテム レンダラーのラベルの位置が変わります。

私の質問:

1) 「現在」表示されているアイテムのリストを取得するにはどうすればよいですか? 2) リストがスクロールされた/表示されるアイテムが変更されたことを知るのに役立つ、オーバーライドするイベント/メソッドはどれですか?

ありがとうございました、

ジョアン・サレイロ

4

3 に答える 3

6

getItemIndicesInView():Vector.<int> この DataGroup 内に表示されるアイテム レンダラーのインデックスを返します。

于 2011-03-03T14:19:22.557 に答える
1

私はこの方法で問題を解決しました:

protected function pagedList_touchInteractionEndHandler(event:TouchInteractionEvent):void
{
    var _index:int = (event.currentTarget.scroller.viewport.layout.horizontalScrollPosition / event.currentTarget.scroller.viewport.layout.columnWidth);                
}

<s:List id="pagedList" scrollSnappingMode="center" selectionColor="#FFFFFF" downColor="#FFFFFF" focusAlpha="0" 
            width="100%" height="100%" useVirtualLayout="true"
            verticalScrollPolicy="off" horizontalScrollPolicy="on"
            pageScrollingEnabled="true" 
            itemRenderer="myItemRender" 
            skinClass="skins.PagedListSkin" 
            touchInteractionStart="pagedList_touchInteractionStartHandler(event)" touchInteractionEnd="pagedList_touchInteractionEndHandler(event)" >
        <s:layout>
            <s:TileLayout orientation="rows" requestedRowCount="1" 
                columnWidth="{pagedList.width}" rowHeight="{pagedList.height}" 
                verticalGap="0" horizontalGap="0" />
        </s:layout>
</s:List>
于 2012-02-22T08:02:48.990 に答える
0

((list.dataGroup.layout) as VerticalLayout).rowCountあなたが探しているものかもしれません。

于 2010-08-13T08:17:00.073 に答える