элемент управления списком зажигания, отображающий неполные данные об обновлении dataProvider - PullRequest
0 голосов
/ 10 января 2012

, когда я обновляю список свечей следующим образом:

searchView.gridView.dataProvider = new ArrayCollection( data );

Иногда я получаю полные данные из массива «данные», отображаемого в списке, но иногда только первые четыре элемента.я проверил, и массив и dataProvider после установки всегда имеют правильное количество записей.

вот код списка из mxml:

<s:List id="gridView" width="1024" height="390" itemRenderer="com.xxx.xxx.view.component.GridViewItemRenderer">
    <s:layout>
        <s:TileLayout rowHeight="195" columnWidth="242" requestedColumnCount="4" horizontalGap="0" verticalGap="0" />
    </s:layout>
</s:List>

я не могу понятьпочему иногда он показывает все, а затем снова показывает только первую строку.

ОБНОВЛЕНИЕ: похоже, это как-то связано с использованием TileLayout.когда я удаляю макет, он всегда отображает все записи.

ОБНОВЛЕНИЕ 2: кажется, что это также происходит, только когда я перехожу из элементов в поставщике данных (пустой массив) к n элементам.если уже отображаются элементы и поставщик данных обновляется с использованием более или менее элементов, он работает.

1 Ответ

1 голос
/ 30 ноября 2012

У меня была такая же проблема. Я только использовал помощь группы все же. Если вы сделаете это, он должен показать все.

var myLayout:LayoutBase = gridView.layout;
gridView.layout = null;
gridView.layout = myLayout;

Другой вариант - просто создать новый объект макета и установить его после dataProvider.

var newLayout = new TileLayout();
newLayout.rowHeight = 195;
newLayout.columnWidth = 242;
newLayout.requestedColumnCount = 4;
newLayout.horizontalGap = 0;
newLayout.verticalGap = 0;

gridView.dataProvider = newDataProvider;
gridView.layout = newLayout;
...