![]() |
List + ItemRenderer = полная неразбериха.
Компонент Spark List использует для вывода данных кастомный ItemRenderer, а в качестве DataProvider - ArrayCollection. В Itemrenderer передается несколько параметров и на их основе выводятся данные.
В Листе все выводится правильно. Но обращение к data.myParams в итемрендерере по Creation Complite выводит полную ерунду - данные путаются, сдвигаются по позициям. При этом ДатаПровайдер остается неизменным. Десять раз все перепроверил. Подскажите, плиз, где искать ошибку? |
Что за элементы в ArrayCollection?
|
Объекты с разными свойствами.
Добавлено через 5 минут Ещё добавлю. Вообще элементов в массиве 8, выводится в листе 8 объектов, а creation complite вызывается только 7 раз. |
для начала посмотрите что у вас попадает в itemrenderer:
Код AS3:
|
В общем нашел решение проблемы. Нужно оверрайдить данные в итем рендерер.
Примерно так: Код AS3:
trng, спасибо. Я все это уже смотрел. Ерунда полная выводилась. Решение выше. |
Ясно. Был включен useVirtualLayout?
|
Нет, не был.
|
Столкнулся с такой же проблемой.... список ведёт себя нормально, но вот его Items прыгают куда хотят... помогите прикрутить данный код плиз.... это надо отдельный класс создавать для ItemRenderer? у меня щас всё через компоненты mxml работает
|
Пихайте код из сообщения № 5 в MXML реализующий ваш ItemRenderer.
Ну или приводите свой код. |
как-то странно себя ведёт эта штуковина.... то глючит, то не глючит....
кстати код на 450 строк.... пока не оптимизировал....попробую сначала воспроизвести последовательность при которой Итемсы скачут кто-куда.... если не удастся решить проблему, выложу код сюда |
Цитата:
|
Вложений: 3
ага.... удалось выяснить следующее:
List у меня внутри TitleWindow рамером 200 px. 1. В List вывожу 5 элементов. Отображаются нормально. Ещё на 2 элемента хватило бы места (111.jpg). 2. Нажимаю на первый элемент - отображается RichEditableText с отображением категорий (222.jpg) за фоном подгружаются данные из БД. Нажимаю на второй элемент - тоже всё хорошо, данные из БД. 3. Спускаюсь вниз списка и выбираю последний элемент - отображаются категории первого элемента. Подгрузки из БД не происходит. Собственно вот он глюк. (333.jpg) Но! Если окошко сделать большего размера чтобы скролла не было и места хватало для прорисовывания каждого элемента - то глюков никаких нет. Экспериментально выяснил если высоту окна сделать -10 или +10 то глюка нет. что это? глюк? у меня подозрение что что-то в коде у меня не так. В ItemRenderer примерно следующий код: Код AS3:
Код AS3:
|
ItemRendererов создается ровно столько, сколько влезает. При скролинге у существующих обновляется data.
Поэтому вешать что-то отвечающее за вывод данных в creationComplete бессмысленно. override data, как сказал Астрапорт. Добавлено через 5 минут Вынесите запрос из итемРендерера, по change листа например его делайте, и только в том случае, если нет данных. Полученное пихайте в нужный элемент датапровайдера. Иначе у вас получится/получается - выбрал элемент - запрос - скролл - ответ и в итемрендерере с новыми данными появляется ранее запрошенная инфа для другого элемента. |
ага.... вот теперь понятно.... благодарю за ответ. придётся выносить все лоадеры за итемрендеры. вот только с override data не понятно.... как этот код прикрутить и куда? можно примерчик?
|
В код итемрендерера, почитайт хелп, это сеттер в него приходит объект из вашего датаПровайдера, от него и пляшите. List.selectedItem это тот же объект.
|
| Часовой пояс GMT +4, время: 17:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.