spark list控件显示dataProvider更新的不完整数据

时间:2012-01-10 10:12:34

标签: list actionscript-3 flex flex-spark

当我更新这样的火花列表时:

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 个答案:

答案 0 :(得分:1)

我有同样的问题。我刚刚使用了乐队援助。如果你这样做,它应该显示所有。

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;