2012-03-19 3 views
0

У меня есть список искр со следующими атрибутами:Flex 4.6 Mobile - как узнать, какая ItemRenderer видна

verticalScrollPolicy="off" 
    horizontalScrollPolicy="on" 
    pageScrollingEnabled="true" 
    scrollSnappingMode="leadingEdge" 

и внутри является ItemRenderer, который занимает весь экран для каждого элемента. Таким образом, в основном это горизонтальный список, который позволяет прокручивать влево и вправо по одной странице за раз. Обратите внимание, что scrollSnappingMode включен, поэтому страницы всегда отлично привязываются к странице.

Кроме того, я устанавливаю «useVirtualLayout = true» в макете, поэтому у меня есть виртуальные ItemRenderers, которые перерабатываются.

Мой вопрос: как я узнаю, какой ItemRenderer в настоящее время находится на экране? Есть ли какое-либо событие или свойство для просмотра, которое позволяет мне знать, когда эта страница появилась в представлении и является ли на данный момент страницей?

ответ

0

Как узнать, какой ItemRenderer в настоящее время находится на экране?

В описанной ситуации, в которой используются виртуальные макеты, и только один элемент отображается на экране одновременно; там будет только один itemRenderer.

Вы можете получить доступ к элементу dataProvider itemRenderer, используя свойство data в своем itemRenderer.

Вы можете найти индекс своих данных в dataProvider, используя свойство itemIndex на itemRenderer.

Если вы хотите узнать, когда список изменится с компонента, который содержит этот список; вы можете попробовать прослушать событие изменения; но я не уверен, что это даст вам то, что вам нужно; так как можно прокручивать, не выбирая новый элемент.

+0

Это не совсем так, определенно более одного ItemRenderer за раз. Если я просто немного проведите по экрану в любом направлении, не меняя страницу, я вижу два объекта рядом. Таким образом, по крайней мере два рендерера за раз, но я думаю, что, скорее всего, это три, потому что он создает один слева и справа от текущего. Поэтому остается вопрос: какой из них видимый? – Andy

+0

В списке MX у них было свойство offscreenExtraRowsorColumns, которые использовались строго для этой цели. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/listClasses/ListBase.html#offscreenExtraRowsOrColumns Кажется, что списки Spark имеют нечто похожее. Возможно, на макете или в DataGroup? Для меня ничего не видно. Почему имеет значение, какой визуализатор виден? – JeffryHouser

+0

Это важно для меня, потому что по ряду причин я хотел бы отслеживать, на какой странице пользователь в данный момент включен. Есть ли способ увидеть абсолютное X и Y позиционирование ItemRenderer? Таким образом, когда оба находятся в нуле, я знаю, что он отображается в настоящее время на экране. – Andy

Смежные вопросы