Как получить видимые элементы в Spark List с виртуальным макетом - PullRequest
2 голосов
/ 12 апреля 2010

у меня есть:

  • Массив чисел;
  • Список, использующий вышеуказанную коллекцию ArrayCollection в качестве поставщика данных, и virtualLayout = true;
  • пользовательский ItemRenderer, который показывает метку с: а) число б) позиция у в зависимости от числа И наибольшего видимого числа

Другими словами, если у меня есть 10 цифр в AC, и только 5 появляются на экране, позиция y этих 5 будет зависеть от значения максимального числа для этих 5. Когда пользователь, конечно, прокручивает эти 5 элементов изменяются, поэтому положение метки в средствах визуализации элементов будет меняться.

Мои вопросы:

1) Как я могу получить список предметов, которые «в данный момент» видны? 2) Какое событие / метод для переопределения поможет мне узнать, что список был прокручен / видимые элементы изменены?

Спасибо,

Жуан Салеиро

Ответы [ 3 ]

6 голосов
/ 03 марта 2011

getItemIndicesInView():Vector.<int> Возвращает индексы средств визуализации элементов, видимых в этой группе данных.

1 голос
/ 22 февраля 2012

Я решил свою проблему следующим образом:

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>
0 голосов
/ 13 августа 2010

((list.dataGroup.layout) as VerticalLayout).rowCount может быть именно то, что вы ищете.

...