Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Неверное отображение данных в List при смене dataProvider. (http://www.flasher.ru/forum/showthread.php?t=161882)

Art_133 28.07.2011 18:35

Неверное отображение данных в List при смене dataProvider.
 
Привет.
Столкнулся с проблемой. Информация в компоненте List отображается некорректно, если dataPovider меняется.

Имеем два ArrayCollection, которые являются источником элементов для List:
Код:

<s:ArrayCollection id="galleryData">                       
        <fx:String>First DataProvider</fx:String>
        <fx:String>First DataProvider</fx:String>
        <fx:String>First DataProvider</fx:String>
        <fx:String>First DataProvider</fx:String>
        <fx:String>First DataProvider</fx:String>
        <fx:String>First DataProvider</fx:String>
        <fx:String>First DataProvider</fx:String>
        <fx:String>First DataProvider</fx:String>
        <fx:String>First DataProvider</fx:String>
        <fx:String>First DataProvider</fx:String>
        <fx:String>First DataProvider</fx:String>
</s:ArrayCollection>
               
<s:ArrayCollection id="galleryData2">                       
        <fx:String>Second DataProvider</fx:String>
        <fx:String>Second DataProvider</fx:String>
        <fx:String>Second DataProvider</fx:String>
</s:ArrayCollection>

Есть компонент List, свойству dataProvider которого, по нажатию на кнопки, передаём galleryData или galleryData2:
Код:

<s:List
        id="galleryList"
        width="350" height="100">       
        <s:layout>
                <s:TileLayout requestedColumnCount="3" horizontalGap="19" verticalGap="16" />
        </s:layout>
</s:List>

Кнопки:
Код:

<s:Group x="350">
        <s:layout>
                <s:HorizontalLayout />
        </s:layout>
               
        <s:Button label="1" click="{galleryList.dataProvider = galleryData; }" />
        <s:Button label="2" click="{galleryList.dataProvider = galleryData2; }" />
</s:Group>

Описание ошибки:
Когда мы по очереди меняем dataProvider (путём поочередного нажатия на кнопки) информация в List обновляется, но отображается не полностью, а видны только первые 3 элемента из первого ArrayCollection(galleryData).
Посмотреть можно по ссылке.
Как добиться корректного поведения List при смене dataProvider?
Спасибо за помощь.

alatar 28.07.2011 20:11

Видимо глючит List, если не хотите разбираться где именно и не используется весь функционал List, можете использовать DataGroup.
Код AS3:

<s:Scroller width="350" height="100">
    <s:DataGroup id="galleryList" itemRenderer="spark.skins.spark.DefaultItemRenderer">
        <s:layout>
            <s:TileLayout requestedColumnCount="3" horizontalGap="19" verticalGap="16" />
        </s:layout>
    </s:DataGroup>
</s:Scroller>

Добавлено через 9 минут
В SDK 4.5.1 этот баг починили, если есть возможность сменить SDK, переходите на 4.5.1.

Art_133 29.07.2011 15:27

Спасибо, обновил sdk и баг устранен.


Часовой пояс GMT +4, время: 10:28.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.